【发布时间】:2010-07-11 20:32:51
【问题描述】:
我正在尝试使用 AJAX 填充一些使用 CakePHP 的 formHelper 自动生成的选择框。
如何将onChange 事件监听器添加到选择框?
【问题讨论】:
标签: javascript php cakephp dom-events
我正在尝试使用 AJAX 填充一些使用 CakePHP 的 formHelper 自动生成的选择框。
如何将onChange 事件监听器添加到选择框?
【问题讨论】:
标签: javascript php cakephp dom-events
我通过在 window.onload() 函数中使用 addEventListener() 函数动态添加事件侦听器解决了这个问题。
【讨论】:
<?php $html->script('jquery-1.4.2.min',false); ?>
<script type="text/javascript">
$(document).ready(function(){
$('#ProductBrandId').change(function(){
getfamily()
});
})
function getfamily(){
$.ajax({
type : "GET",
url : "getfamily?id="+$('#ProductBrandId').val()&rid='+Math.random()/9.9,
success : function(opt){
$('#familybox').html(opt)
}
})
}
</script>
admin_getfamily.ctp
<?php
$options = array(
'type' => 'select',
'options' => $family,
'label' => '',
'div' => '',
'style' => 'width:235px',
'error'=> false,
);
echo $form->input(
'Product.family_id',
$options
);
?>
在控制器中
function admin_getFamily(){
$this->layout = '';
//debug($this->params['url']);
$brand = $this->params['url']['id'];
$family = array();
if($brand > 0){
$family = $this->Product->Brand->Family->find('list',array('fields' => 'Family.name','conditions' =>array('Family.brand_id' => $brand),'order' => 'Family.name'));
}
$this->set(compact('family'));
}
【讨论】: