我有一个名为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();">
所以我只想知道如何在zend框架中的select元素上实现onchange事件
答案 0 :(得分:3)
可以在服务器端添加。在创建元素时,添加onchange事件的详细信息,如下所示。
$sort=new Zend_Form_Element_Select('employee_name',array('onchange' => 'loadDeviceId();'));
现在,在输出HTML中,您会看到"onchange = 'loadDeviceId();'"
附加到您的选择元素。
答案 1 :(得分:0)
由于您要为onChange
事件实现事件处理程序,因此必须在javascript中执行此操作。
据我所知,在PHP或Zend框架中没有本地方法可以实现它。
使用JQuery你可以这样做:
$('#employee_name').change(function()
{
//call your javascript function here
});
您甚至可以直接调用您的函数:
$('#employee_name').change(yourFunctionName);
希望对你有所帮助。