如何在CakePHP中添加一个onChange事件来选择标记?

ih99xse1  于 2022-11-11  发布在  PHP
关注(0)|答案(2)|浏览(127)

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

332nm8kg

332nm8kg1#

我通过在window.onload()函数中使用addEventListener()函数动态添加事件侦听器来解决这个问题。

u0njafvf

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

相关问题