Я пытаюсь создать некоторую функциональность ajax в своем веб-приложении, но не могу подобрать все кусочки головоломки:
Я хочу добавить ссылку, при нажатии на которую откроется новое поле ввода (текст), которое может заполнить пользователь. В бэк-энде я хочу сделать какое-то администрирование, чтобы по ссылке нажимали.
Я хочу сделать в соответствии с принципами Zend Framework, используя метод ajaxLink()
. Может у кого-нибудь есть пример для меня? Я прочитал официальную документацию ( ZendX_JQuery ), но она мне не совсем помогает.
Мой код переднего плана (вида) выглядит так;
<?= $this->ajaxLink("Subscribe", $this->url(array('controller' => 'mycontroller', 'action' => 'action1', 'id' => $event['id'])),
array("beforeSend" => "hide",
"update" => "#pb_" . $event['id'],
'noscript' => false,
'method' => 'POST')); ?>
Мой внутренний код выглядит следующим образом.
public function action1Action()
{
if( !$this->loggedIn || ! $this->athlete) {
$this->_redirect('index');
}
if(! $this->_request->isXmlHttpRequest())
{
//The request was NOT made with JS XmlHttpRequest
die;
}
// Do some administration
// (removed to make this easier in this example)
$pb = new Zend_Form_Element_Text('PB');
$pb->setLabel('PB:')
->addValidator('StringLength', false, array(0,20))
->setRequired(false);
$renderText = $pb->render();
return $renderText;
}
Я продолжаю получать сообщения о том, что данный метод хочет найти скрипт вида action1.phtml. Я также не уверен, что то, что я пытаюсь сделать с генерацией элемента ввода формы, работает таким образом.
Я нашел некоторые ответы в на этот вопрос , но это не так уж и элегантно (требуется дополнительный параметр в ссылке и нужен другой контроллер), что мне не нравится.