0

我有一个下拉列表,当更改时将值传递给控制器​​。

然后,该控制器通过模型运行返回多个结果的查询。

我需要以某种方式用查询结果填充我的下拉列表。

我的语法是:

控制器

  function GetDeliveryAddressfromCustomer(){

    $this->load->model('Sales_model');
    if (isset($_POST['data'])){
        $q = strtolower($_POST['data']);
        $data = $this->Sales_model->GetDeliveryAddressfromCustomer($q);
        $this->output->set_content_type('application/json')->set_output(json_encode($data));
    }
}

模型

  function GetDeliveryAddressfromCustomer($q){
    $this->db->select('deliveryaddress');
    $this->db->where('Account', $q);
    $query = $this->db->get('Client');
    if($query->num_rows > 0){
        foreach ($query->result_array() as $row){
            $row_set[] = htmlentities(stripslashes($row['deliveryaddress'])); 
       }
       return $row_set;
    }
  }

查看 JS

 $.post('GetDeliveryAddressfromCustomer', {data:selectedObj.value},function(result) { 
  var selcust = selectedObj.value;

  //what to put here to pupulate dropdown list

  }); 

查看选择

 <select id="deliveryaddress" name="deliveryaddress" data-mini="true" data-theme="a">
   <option value="0"></option>
 </select>

错误是: Trying to get property of non-object

我认为错误来自返回的多个结果。selectedObj.value 是一个数组而不是一个值。

我不太担心填充下拉列表的部分,但如果您有建议,请提供。

谢谢,瑞安

4

1 回答 1

1

请发布您的 json 对象,因为我不知道您的数据输出是什么样的

但无论如何检查一下

$.post('GetDeliveryAddressfromCustomer', {data:selectedObj.value},function(result) { 
  var selcust = selectedObj.value;

  //what to put here to pupulate dropdown list
 $("#deliveryaddress").html('<option value=""></option>'); //or you could empty it or ignore this line
$.each(result, function(index, value) {
  $("#deliveryaddress").append('<option value="'+value+'">'+value+'</option>')
            });
        }
        , "json"  //dont forget this
                );
于 2013-07-26T13:14:43.037 回答