即使数据库中存在该值,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

CodeIgniter 会话为空

如何使用数据库中的数据计算 Total、Tax

即使未加载 codeigniter 会话库,也会在数据库中创建新的会话条目。为啥?

如何预测另一个表CodeIgniter中不存在的数据

Codeigniter“未指定输入文件”即使粘贴新的.htaccess