我正在尝试使用 AJAX 来填充一些选择框,这些选择框是使用CakePHP的formHelper自动生成的。我如何将onChange事件侦听器添加到选择框中?
onChange
332nm8kg1#
我通过在window.onload()函数中使用addEventListener()函数动态添加事件侦听器来解决这个问题。
window.onload()
addEventListener()
u0njafvf2#
<?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>
管理员_获取家庭.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')); }
2条答案
按热度按时间332nm8kg1#
我通过在
window.onload()
函数中使用addEventListener()
函数动态添加事件侦听器来解决这个问题。u0njafvf2#
管理员_获取家庭.ctp
在控制器中