Castecne zAJAXovani formulare a pouziti snipettu
- Blujacker
- Člen | 89
Ahoj,
snazim se udelat formular a trochu ho z AJAXovat. Nejprve bude vykreslen klasicky formular s tlacitkem Preview. Po kliknuti na toto tlacitko se formular ajaxove submitne a zpracuje. Zpracovane hodnoty se zobrazi do puvodni stranky do nejakeho divu + se vykresli klasicke submit tlacitko ktere form submitne bez AJAXu (ve vysledku planuju, ze se preview formulare i klasicke submit tlacitko vykresli do modalniho okna).
Pokusil jsem se na to jit nasledovne. Sablona:
{form myForm class => 'ajax'}
{label remark}{/label}{input remark}
{input preview}
{snippet preview}
{if $renderSnippet}
{* display submitted form details and then display submit button that will submit the form (not using ajax) *}
{input submit}
{/if}
{/snippet}
A v presenteru:
public function renderDefault(){
if ($this->isAjax()){
return;
}
$this->template->renderSnippet = FALSE;
}
protected function createComponentMyForm(){
$form = new Form();
$form->addText("remark", "Remark");
$form->addSubmit("preview", "Preview")->onClick[] = $this->formPreview;
$form->addSubmit("submit", "Save")->onClick[] = $this->formSave;
return $form;
}
public function formSave($form, $values){
dump($values);
//save & redirect
}
public function formPreview($button){
$values = $button->getForm()->getValues(TRUE);
$this->template->renderSnippet = TRUE;
$this->template->data = $values["remark"];
$this->redrawControl("preview");
}
Tento kod je bohuzel naprosto nefunkcni. Latte ve snippetu nezna formular
takze nezvladne zobrazit submit tlacitko. Nette.ajax.js includuji, tlacitko
Preview
vola funkci formPreview
spravne ajaxove, ale
tim to bohuzel konci.
Mohli byste me prosim nakopnout spravnym smerem, jak bych mohl dosahnout spravneho vysledku?
Dekuji!