选择的jquery不会更新选项字段

时间:2014-02-20 11:03:43

标签: php jquery ajax jquery-chosen

我需要在select元素中附加一些选项,我在这里做错了什么,

记住:
我正在使用jquery选择的插件。

$(document).ready(function(e) {
    $("#my_select").chosen();
    get_data()

});    

function get_data() {
    $.ajax({
            url: "<?=site_url('controller/function')?>",
            success: function(result){
                result = $.parseJSON(result);
                $.each(result, function(i, v) {
                    //alert('inside')
                    $('#my_select').append("<option value='"+v.id+"'>"+v.name+"</option>");
                });
                $("#my_select").trigger("chosen:updated");       
            }
        });
}

Json的反应非常好,

[{"id":"2","name":"name1"},{"id":"3","name":"name2"}]

虽然我的HTML是,

<select id="my_select" name="my_select" data-placeholder="Select type">
        <option value=""></option> 
</select>    

3 个答案:

答案 0 :(得分:2)

你试过触发器(“liszt:updated”)吗?

答案 1 :(得分:0)

尝试这样,先加载数据,然后实现选择的

$(document).ready(function(e) {
    get_data()
    $("#my_select").chosen();

});



function get_data() {
    $.ajax({
            url: "<?=site_url('controller/function')?>",
            success: function(result){
                result = $.parseJSON(result);
                $.each(result, function(i, v) {
                    //alert('inside')
                    $('#my_select').append("<option value='"+v.id+"'>"+v.name+"</option>");
                });

            }
        });
}

答案 2 :(得分:0)

这似乎有效。我删除了选中的()。

<?php
if (isset($_GET['getdata'])) {
    echo '[{"id":"2","name":"name1"},{"id":"3","name":"name2"}]';
    exit;
}
?>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

<script>

$(document).ready(function(e) {
    get_data()
});    

function get_data() {
    $.ajax({
            url: "http://www.website.com/test.php?getdata",
            success: function(result){
                result = $.parseJSON(result);
                $.each(result, function(i, v) {
                    $('#my_select').append("<option value='"+v.id+"'>"+v.name+"</option>");
                });      
            }
        });
}

</script>

<select id="my_select" name="my_select" data-placeholder="Select type">

</select>