0

我想使用 jquery 和 ajax 填充下拉列表。

我的jQuery电话是

<script>
        $(document).ready(function(){
            $.ajax({           
                type: "GET",
                url: "<?=base_url()?>user/getstate/",                  //the script to call to get data          
                data:'',                        //you can insert url argumnets here to pass to api.php
                dataType: 'json',                //data format      
                success: function(data){    //on recieve of reply
                    $("#state").append('<option selected>State</option>');
                    for(i in data) 
                        $("#state").append("<option value=\""+data[i][0]+"\">"+data[i][1]+"</option>");
                } 

            });
        });
    </script>

需要填充的部分是

<select id="state" class="span2" style="height:30px" name="state" required>
</select>

控制器中的功能是

public function getstate(){

        $this->load->model('usermodel');
        $data=$this->usermodel->getstate();
        echo json_encode($data);


}

从中获取数据的模型是

public function getstate(){
    $sql="SELECT * FROM statelist";
    $query=$this->db->query($sql);
    $result=$query->result_array();
    return $result;
}

statelist 中的数据是

席位 | 州名

wb | 西孟加拉邦

嘎| 果阿

我面临的问题是,当我加载页面时,我得到了带有 2 个元素的下拉列表,但以这种形式

状态
未定义
未定义

现在我不明白为什么我得到“未定义”而不是所需或预期的数据


西孟加拉邦
果阿

一个解决方案真的会帮助我。

4

1 回答 1

0

Jquery 将您的 json 转换为一个对象,因此您需要像这样引用它:

data.i

不是

data[i]

就像您使用数组一样。

但我猜我不是你的钥匙。如果您尝试在成功参数中记录数据“console.log(data)”,您应该能够看到正确的键名。

于 2013-04-06T16:45:28.573 回答