2016-03-03 9 views
0

У меня динамический jquery созданный элемент выпадающего списка. У меня есть вызов ajax, который получает информацию о деталях (цена, единица), когда изменяется раскрывающийся список.AJAX не получает данные

Вот мой код:

$(document).on('change', '#create_item', function(){ 
    var item_id = $('#create_item').val(); 
    alert(item_id); 
    $.ajax({ 
     type : 'POST', 
     url : '<?php echo base_url('Create_controller/getItem'); ?>', 
     data : { item_id : item_id }, 
     dataType : 'json', 
     success : function(data){ 
      var item_data = data; 
      alert(data); 
      $.each(item_data, function(index, value){ 
       if(index == 0){ 
        $('#create_unit').val(value.unit); 
        $('#create_price').val(value.price); 
       } 
      }) 
     }, 
     error : function(errorw){ 
      alert('Error'); 
     } 
    }); 
}); 

Вот мой контроллер

public function getItemDetails(){ 
    $item_id = $this->input->post('item_id'); 
    $item_details = $this->create_model->getItemDetails($item_id); 
    echo json_encode($item_details); 
} 

А вот моя модель

function getItemDetails($item_id){ 
    $this->db->select('unit, price'); 
    $this->db->from('item'); 
    $this->db->where('id', $item_id); 
    $query = $this->db->get(); 
    return $query->result(); 
} 

Я знаю, что мой data пуст, потому что он предупреждает пустая строка. Я также знаю, что должны быть значения, как я пробовал print_r($this->create->model->getItemDetails($item_id), и есть значения, возвращаемые.

Благодарим за помощь.

+2

Если вы в Chrome вы можете открыть консоль разработчика, щелкнув правой кнопкой на странице и нажать кнопку «Проверить». Затем вы можете перейти на вкладку «Сеть», чтобы просмотреть фактические данные, возвращенные из запроса напрямую. Кроме того, попробуйте консоль регистрировать данные вместо предупреждения. Возможно, это обеспечит более глубокое понимание вашей проблемы. –

+0

Проверьте консоль и отлаживайте, как сказано выше. Помимо этого взгляните на ваш успех. С моей точки зрения ваш $ .each не дает желаемого эффекта – markoffden

ответ

0

Я сделал очень простую ошибку. Я заменил

url : '<?php echo base_url('Create_controller/getItem'); ?>', 

в

url : '<?php echo base_url('Create_controller/getItemDetails'); ?>', 

так getItemDetails мой метод контроллера

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