在Codeigniter中通过ajax获取数据



我在CI中通过ajax将记录添加到数据库中,所以我试图返回新记录的id,但它不起作用,记录已经添加,但没有返回id。(在ajax代码中,我试图提醒新的记录id,但它提醒未定义(

下面是ajax代码:

$.ajax({
type:'post',
url: baseURL+"admin/Products/add_product",
data:postData,
success:function(data){
alert(data[0].id);
$('#register_form')[0].reset();

}  });

这是控制器,

注意,我从create_product方法返回id,并将其放入get_by_id方法中,然后返回结果

if($id=$this->Products_model->create_product($data)){
$result = $this->Products_model->get_product_by_id($id);
return $result;
}    

这是我的模型方法

public function create_product($data){

$query = $this->db->insert('products',$data);
if($query){

$id = $this->db->insert_id();
return $id;
}else{
return false;
} 
}
//////////get_by_id_method
public function get_product_by_id($id){
$this->db->where($id,'id');
$query = $this->db->get('products');
if($query){

return $query->result();
}
}

希望这将帮助您:

你的ajax应该是这样的:

$.ajax({
type:'post',
url: baseURL + "admin/Products/add_product",
data:postData,
success:function(data)
{
var response = JSON.parse(data);
alert(response.id);
$('#register_form')[0].reset();
}  
});

你的控制器应该是这样的:

$id = $this->Products_model->create_product($data);
if($id)
{
$result = $this->Products_model->get_product_by_id($id);
echo json_encode($result);
exit;
}

您的模型方法get_product_by_id应该是这样的:

public function get_product_by_id($id)
{
$this->db->where($id,'id');
$query = $this->db->get('products');
if($query->num_rows() > 0)
{
return $query->row();
}
}

您可能需要在控制器中用正确的内容类型回显JSON:

$result = [];
$id = $this->Products_model->create_product($data);
if ($id) {
$result = $this->Products_model->get_product_by_id($id);
}
header("Content-type: application/json");
echo json_encode($result);

这样,响应可以是一个空对象,也可以是查询结果。

相关内容

  • 没有找到相关文章

最新更新