即使数据库中存在该值,codeigniter 中的 ajax 也仅显示错误消息
Posted
技术标签:
【中文标题】即使数据库中存在该值,codeigniter 中的 ajax 也仅显示错误消息【英文标题】:ajax in codeigniter showing only false message even when the value exist in database 【发布时间】:2021-12-14 23:35:35 【问题描述】:我正在尝试使用 AJAAX 检查我的 CodeIgniter 网站的数据库中是否存在值。我写了以下代码:
<input id="username" name="pincode" type="text" class="form-control" placeholder="Enter Pincode">
<input id="prodid" name="prodid" value="<?php echo $prodid;?>" type="hidden">
<button type="button" onclick="check_if_exists();" class="btn btn-primary">Check</button>
function check_if_exists()
var username = $("#username").val();
var prodid = $("#prodid").val();
$.ajax(
type: "post",
url: "<?php echo base_url(); ?>index.php/homecontroller/filename_exists",
data:
username: username,
prodid: prodid
,
success: function(response)
if (response == true)
$('#msg').html('<span style="color: green;">' + msg + "</span>");
else
$('#msg').html('<span style="color:red;">Delivery Not Available at ' + username + '</span>');
);
function filename_exists()
$username = $this->input->post('pincode');
$prodid = $this->input->post('prodid');
$exists = $this->product->filename_exists($prodid);
if ($exists)
return true;
else
return false;
function filename_exists($prodid)
$this->db->select('*');
$this->db->where('id', $prodid);
$this->db->from('product');
$query = $this->db->get();
$result = $query->result_array();
return $result;
即使数据库中存在该值,我也只会收到该值不存在的消息。
【问题讨论】:
你检查过输入值是否传到服务器了吗? @dspillai 我该如何检查 您在DB中的数据可能是整数,但您请求中的数据是字符串 我还想说,您正在尝试从数据库中获取实际上没有必要的数据。如果你只想检查数据是否存在,为什么要收集它?像这样重写 $query = $this->db->select('id')->from('product')->where('id',$prodid)->get(); if($q->num_rows()) 返回真; 使用 echo,而不是 returnif ($exists) echo true; 其他 回声假; 【参考方案1】:-
您使用的是 AJAX 而不是表单提交方法,因此后端 post() 方法将不起作用
要在php中从服务器传输一个值,一种方法是echo,但是这里的return是错误的。
请像这样重写您的代码
查看
function check_if_exists()
var username = $("#username").val();
var prodid = $("#prodid").val();
var transfer = [username,prodid];
$.ajax(
type: "post",
url: "<?php echo base_url(); ?>index.php/homecontroller/filename_exists",
data: result: JSON.stringify(transfer),
success: function(response)
if (response)
$('#msg').html('<span style="color: green;">' + msg + "</span>");
else
$('#msg').html('<span style="color:red;">Delivery Not Available at ' + username + '</span>');
);
控制器
function filename_exists()
$post = json_decode($_POST['result']);
$username = $post[0];
$prodid = $post[1];
$exists = $this->product->filename_exists($prodid);
echo $exists;
模态
function filename_exists($prodid)
$this->db->select('id');
$this->db->where('id', $prodid);
$this->db->from('product');
$query = $this->db->get();
if($query->num_rows()) return true;
enter code here
【讨论】:
以上是关于即使数据库中存在该值,codeigniter 中的 ajax 也仅显示错误消息的主要内容,如果未能解决你的问题,请参考以下文章
即使值存在,localStorage.getItem() 也始终返回 null