我正在尝试使用AJAX填充一些使用CakePHP的formHelper自动生成的选择框。 如何将onChange事件侦听器添加到选择框?
答案 0 :(得分:2)
我通过在addEventListener()
函数中使用window.onload()
函数动态添加事件侦听器来解决它。
答案 1 :(得分:1)
<?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'));
}