在 Codeigniter 中通过 ajax 获取数据
Getting data by ajax in Codeigniter
我在 CI 中通过 ajax 将记录添加到数据库,所以我试图 return 新记录的 ID 但它不起作用,记录已添加但没有 id 是 returned 。(在 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 方法 returning id 并将其放入 get_by_id
方法,然后 return 结果
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();
}
}
您可能需要在控制器中使用适当的内容类型回显 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);
以便响应可以是空对象或查询结果。
希望对您有所帮助:
你的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();
}
}
我在 CI 中通过 ajax 将记录添加到数据库,所以我试图 return 新记录的 ID 但它不起作用,记录已添加但没有 id 是 returned 。(在 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 方法 returning id 并将其放入 get_by_id
方法,然后 return 结果
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();
}
}
您可能需要在控制器中使用适当的内容类型回显 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);
以便响应可以是空对象或查询结果。
希望对您有所帮助:
你的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();
}
}