Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用JQuery更改其他组合框时动态加载HTML组合框的最佳方法是什么_Php_Jquery_Symfony1 - Fatal编程技术网

Php 使用JQuery更改其他组合框时动态加载HTML组合框的最佳方法是什么

Php 使用JQuery更改其他组合框时动态加载HTML组合框的最佳方法是什么,php,jquery,symfony1,Php,Jquery,Symfony1,我找到了一种简单的方法,可以在更改另一个组合框时动态加载到HTML组合框。我有一种方法,但它确实很痛苦,而且不是一个很难维护的灵活代码 例如,当根据国家/地区值更改国家/地区时,我有两个组合框country/provice省组合框值应更改 function getCo(cid){ var countryVal=$('#cmbCountry').val(); $.post("<?php echo url_for('country/ajaxloadcourse') ?>"

我找到了一种简单的方法,可以在更改另一个组合框时动态加载到HTML组合框。我有一种方法,但它确实很痛苦,而且不是一个很难维护的灵活代码

例如,当根据国家/地区值更改国家/地区时,我有两个组合框country/provice省组合框值应更改

function getCo(cid){
    var countryVal=$('#cmbCountry').val();
    $.post("<?php echo url_for('country/ajaxloadcourse') ?>", //Ajax file
        { cid: cid },  // create an object will all values
        //function that is called when server returns a value.
        function(data) {
            var selectbox="<select name='province' id='province' class='formSelect' style='width: 150px;' tabindex='4' onchange='getCourseId(this.value,"+countryVal+")'>";
            selectbox = selectbox +"<option value=''><?php echo __('--Select--') ?></option>";
            $.each(data, function(key, value) {
                selectbox=selectbox +"<option value="+key+">"+value+"</option>";
            });
            selectbox=selectbox +"</select>";
            $('#provincelist').html(selectbox);
        },
        //How you want the data formated when it is returned from the server.
        "json"
    );
}
有什么简单的方法可以做到这一点吗,
谢谢

2额外建议:

您可以将HTML fragmen/DOM builder块放在服务器端,因此创建一个类/方法来生成DOM选择框,因为几乎所有流行的php框架都有它们的HTML助手,或者如果您已经习惯了一些模板系统,比如Smarty,这可能会减少JS脚本以便于维护

重构代码。如果您有一些类似的函数/方法,在应用程序中,创建一个公共函数是保持代码干净和可维护的最佳方法。在这种情况下,如果您有多个链接组合框方法,最好将上面的一些函数放入您自己的自定义插件中,这样您就不需要编写上面的另一个相同函数

然后,您可以使用编写一些函数作为包装器来处理前面的json并输出html片段,这样您就不必在js块中手工制作html部分。