ajaxový formulář nedaří se odeslat
- kovarik.t
- Člen | 18
Ahoj, snažím se rozchodit formulář odeslaný ajaxem a nedaří se. Peru
se s tim prvně a javascript neni moje silná stránka.
Neajaxově vše funguje
Za pomoc předem děkuji.
Používám nette.ajax.js a jquery 1.8
initcializace:
$(function () {
$.nette.init();
});
protected function createComponentPasswordForm()
{
$heslo = new Form;
$heslo->getElementPrototype()->class[] = "ajax form-horizontal";
$heslo->addPassword('old', 'Stávající heslo:')
->setRequired('Zadejte Stávající heslo')
->setAttribute('class', 'form-control');
$heslo->addPassword('new', 'Nové heslo:')
->setRequired('Zadejte Nové heslo')
->addRule(Form::MIN_LENGTH, 'Heslo musí mít alespoň %d znaky', 3)
->setAttribute('class', 'form-control');
$heslo->addPassword('confirm', 'Heslo znovu:')
->setRequired('Zadejte Potvrďte heslo')
->addRule(Form::MIN_LENGTH, 'Heslo musí mít alespoň %d znaky', 3)
->setAttribute('class', 'form-control');
$heslo->addSubmit('savePassword', 'Ulož')
->setAttribute('class', 'btn btn-primary')
->onClick[] = callback($this, 'savePassword');
//$heslo->addProtection();
return $heslo;
}
public function savePassword($button)
{
$values = $button->getForm()->getValues(TRUE);
if (!$this->presenter->isAjax())
{
$this->presenter->flashMessage('Není AJAXOVĚ.', 'alert alert-warning');
$this->redirect('this');
}
else
{
$this->presenter->flashMessage('AJAXOVĚ.', 'alert alert-success');
$heslo->setValues(array(), TRUE);
$this->redrawControl();
}
}
{snippet}
{control passwordForm}
{/snippet}
konzole vyhodí:
POST http://localhost/admin/?… 500 (Internal Server Error)
jquery.min.js:2
send jquery.min.js:2
v.extend.ajax jquery.min.js:2
ajax nette.ajax.js:219
inner.requestHandler nette.ajax.js:48
v.event.dispatch jquery.min.js:2
o.handle.u jquery.min.js:2
Editoval kovarik.t (6. 2. 2014 22:33)
- jiri.pudil
- Nette Blogger | 1029
Ten request by ti měl vrátit hlavičku X-Nette-Error-Log obsahující cestu
k Laděnce. V tomhle případě bych si tipl, že je problém v nedefinované
proměnné $heslo
v metodě savePassword. Měl bys tam použít
$this['passwordForm']
(edit: nebo
$button->form
).
Editoval jiri.pudil (7. 2. 2014 9:27)