AJAX没有获取数据
问题描述:
我有一个动态的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)
并且有返回的值。
谢谢你的帮助。
答
我犯了一个非常简单的错误。我换成
url : '<?php echo base_url('Create_controller/getItem'); ?>',
到
url : '<?php echo base_url('Create_controller/getItemDetails'); ?>',
因为getItemDetails
是我的控制器方法
如果您在Chrome中是可以通过右键单击页面,然后点击“检查”打开开发者控制台。然后,您可以导航到“网络”选项卡,直接查看从请求中返回的实际数据。此外,请尝试控制台记录数据,而不是提醒。也许这将提供更多的洞察力到您的问题 –
检查控制台和调试如上所述。除此之外,您还可以看看您的成功处理。从我看来,你的$。每个都没有达到预期的效果 – markoffden