我有一个下拉列表,当更改时将值传递给控制器。
然后,该控制器通过模型运行一个返回多个结果的查询。
我需要以某种方式使用查询结果填充我的下拉列表。
我的语法是:
控制器
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是一个数组而不是值。
我不太担心贬低下拉的部分,但如果你有建议,请提供。
谢谢, 莱恩
答案 0 :(得分: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
);