如何在CakePHP中添加onChange事件以选择标记?

时间:2010-07-11 20:32:51

标签: php javascript cakephp javascript-events

我正在尝试使用AJAX填充一些使用CakePHP的formHelper自动生成的选择框。 如何将onChange事件侦听器添加到选择框?

2 个答案:

答案 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'));
    }