2013-04-06 27 views
0

我想使用jquery和ajax填充下拉列表。下拉人口使用jquery从codeigniter控制器获取数据

我的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中的数据是

sid |州名

wb |西孟加拉邦

ga |果阿

我现在面临的问题是,当我加载的页面我得到2元的下拉如预期,但以这种形式

国家
不确定
不确定

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

状态
西孟加拉邦
果阿

解决方案将真正帮助我。

+0

您是否通过alert检查了脚本中的数据? – Kamal 2013-04-06 15:31:05

+0

我把警报,它返回undefined :( – user2252463 2013-04-06 16:20:46

回答

0

jQuery的将您的JSON成一个对象,所以你需要referene它喜欢:

data.i 

data[i] 

就像你使用一个数组。

但即时通讯猜测,我不是你的关键。如果尝试在成功参数中记录数据“console.log(data)”,则应该能够看到正确的密钥名称。

+0

thnx这样一个美丽的答复。它工作 – user2252463 2013-04-06 16:55:05

相关问题