- w widoku, w którym ma pokazać się formularz dodaje kod:
$('[id^=transfer_]').click(function() { var number = this.id; var windowId = this.id + '_form'; $('#' + windowId).toggle(); $('#' + windowId).load('transfer/format/html/id/' + number); });
- kontroler konto, akcja transfer wygląda tak (mniej więcej):
if ($this->_request->isXmlHttpRequest()) { $transferForm = new Form_TransferForm(); $transferForm->toCardSelect->addMultiOptions($card_numbers); $this->view->transferForm = $transferForm; }
- sekcja _init kontrolera konto:
$ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext->addActionContext('history', 'html') ->addActionContext('transfer', 'html')->initContext();
Wszystko działa świetnie, aż do momentu walidacji formularza. Przy walidacji następuje próba narysowania widoku akcji transfer i przy okazji znika wrapper strony, gdzie formularz był wczytany - problem nr 1. Próbowałem również przesłać ten formularz za pomocą ajax'a, ale odkryłem, że nie działa java script na elementach tego formularza, co również stwarza kolejny problem.
Pytanie nr 1, Czy jest możliwość walidacji formularza zachowując aktualny układ strony, bez wywoływania widoku dla akcji,
Pytanie nr 2, Jak włączyć obsługę java script na elementach, które były wcześniej ładowane ajaxem i dlaczego ona nie działa?
Pozdrawiam,