2013-07-26 3 views
0

У меня есть раскрывающийся список, который при изменении передает значение контроллеру.codeigniter - заполнить выпадающий список с результатом запроса с помощью json

Этот контроллер через модель запускает запрос, который возвращает несколько результатов.

Мне нужно как-то заполнить свой раскрывающийся список результатами запроса.

мой синтаксис:

Контроллер

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

является то, что полная ошибка? номер строки? – bottleboot

ответ

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 
       ); 
+0

Привет, Ахмед. Это отлично работает, спасибо! – Smudger

+0

приветствую :) –

Смежные вопросы