Zend_form_element_select onchange в Zend Framework - PullRequest
4 голосов
/ 27 декабря 2011

У меня есть форма с именем createDevice.php как:

class Admin_Form_CreateDevice extends Zend_Form
{
public function init()
{
    $this->setName('Create Device Access');
    $sort=new Zend_Form_Element_Select('employee_name');
    $sort->setLabel('Employee Name:');
    $this->addElements(array($sort));
    /* Form Elements & Other Definitions Here ... */
}

}

Теперь в действии контроллера с именем viewDeviceAction () я назвал эту форму как:

public function viewDeviceAction()
{
    echo 'viewDevice: ';
    $form_device=new Admin_Form_CreateDevice();
    $form_device->setMethod('post');
    $form_device->employee_name->addMultiOptions($aMembers);//here $aMembers is an array.
    $this->view->form=$form_device;
 }

Теперь я хочу следующую ситуацию: При выборе любого значения из раскрывающегося списка должна быть вызвана функция javascript (которая находится в viewDevice.phtml). Как правило, html выглядит так:

<select id="EmployeeId" onchange="loadDeviceId();">

Так что я просто хочу показать, как реализовать событие onchange для элемента select в Zend Framework

Ответы [ 2 ]

3 голосов
/ 27 декабря 2011

Это можно добавить на самой стороне сервера.При создании вашего элемента добавьте детали для события onchange, как показано ниже.

$sort=new Zend_Form_Element_Select('employee_name',array('onchange' => 'loadDeviceId();'));

Теперь в выходном HTML-коде вы увидите "onchange = 'loadDeviceId();'", прикрепленный к вашему элементу select. мой ответ на другой вопрос .

0 голосов
/ 27 декабря 2011

Поскольку вы хотите реализовать обработчик событий для события onChange, вам придется сделать это в javascript. Насколько я знаю, нет никакого собственного способа реализовать его в PHP или Zend Framework.

Используя JQuery, вы можете сделать что-то вроде этого:

$('#employee_name').change(function() 
{
   //call your javascript function here
});

ВыМожно даже напрямую вызывать вашу функцию следующим образом:

$('#employee_name').change(yourFunctionName);

Надеюсь, что вам это поможет.

...