Odchytenie TRUE, alebo FALSE po ajaxovom requeste
- KristianSubweb
- Člen | 146
Ahojte chel by som sa opýtať mam form.Po ktorého odoslaní chcem odchytiť hlášku (True,False).
V presenteri si vytváram composennentu.
public function createComponentAddIssueForm() {
$form = $this->issueFormFactory->createAddForm();
$form->onSuccess[] = function() {
$this->payload->success = 1;
$this->sendPayload();
};
$form->onError[] = function() {
$this->payload->success = 0;
$this->sendPayload();
};
return $form;
}
V konzole sa mi normálne vráti TRUE alebo False ale javascriptovo to neviem dostat do nejakej premenej.
Ďakujem :)
- Mistrfilda
- Člen | 76
Ahoj,
nejsem si uplne jisty z tveho prikladu k cemu to pouzivas, jestli to pouzivas napr. na validaci mozna bude lehci cely form obalit do snippetu:
{snippet form}
{control form}
{/snippet}
a pote v onSuccess metode zavolat neco jako:
<?php
public function formOnSuccess($form)
{
$form['text']->addError('Error');
$this->redrawControl('form');
}
?>
Popripade lze vytvorit promenou ktera bude mit defaultni hodnotu napr. FALSE, predavat v render metode do sablony. Hodnotu pak lze nastavit opet v onSuccess metode i s invalidaci snippetu.
<?php
private $error = FALSE;
public function render()
{
$this->getTemplate->error = $this->error;
..
}
public function formOnSuccess($form)
{
$this->error = TRUE;
$this->redrawControl('form');
}
?>
{snippet form}
{if $error}
Error
{/if}
{control form}
{/snippet}
- KristianSubweb
- Člen | 146
Mne sa v response vráti či ten formulár bol tru alebo false a ja ten responce potrebujem nejak dostať do javasriptu neviem či sa dobre vyjadrujem.
takyto json dostanem späť
{"success":1}
a ja si potrebujem tu repsonse hlašku spracovať
pre lepšie pochopenie.
console.log( tu si potrebujem nejakým sposobom vypísať to čo sa mi vrátilo v respose )
Editoval KristianSubweb (23. 4. 2018 11:49)
- Mistrfilda
- Člen | 76
No moc to stale nechapu, co se snazis pote v tom javascriptu udelat?
Jinak v nette.ajax.js se s tim pracuje napr. takto:
<script>
$.nette.ajax({
off: ['spinner'],
url: {link refresh!},
success: function (payload) {
var test = payload.value;
console.log(payload.text);
}
});
</script>
<?php
public function handleRefresh()
{
$this->payload->text = 'aaa';
$this->payload->value = 1;
$this->sendPayload();
}
?>
Editoval Mistrfilda (23. 4. 2018 12:17)