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

时间:2011-09-14 03:07:56

标签: php jquery symfony1

我正在寻找一种简单的方法来动态加载到HTML组合框上更改另一个组合框我有办法,但它真的很痛苦,而不是一个难以维护的灵活代码

例如我根据国家/地区值更改国家/组合时有两个组合框/组合值组合框值应该改变。

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

有没有简单的方法可以做到这一点, 感谢

1 个答案:

答案 0 :(得分:0)

另外2条建议:

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

  2. 重构您的代码。如果您有一些类似的功能/方法,在您的应用程序中,创建一个通用功能是保持代码清洁和维护的最佳方法。在这种情况下,如果您有多个链接组合框方法,最好将上面的一些函数放入您自己的自定义“插件”中,这样​​您就不需要像上面那样编写另一个identic函数。 / p>