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 | 77
 
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 | 77
 
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)