Home > Net >  ajax in codeigniter showing only false message even when the value exist in database
ajax in codeigniter showing only false message even when the value exist in database

Time:10-30

I am trying to check if value exist in database in my CodeIgniter website using AJAAX. I have written the following code:

<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>
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

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>');
      }
    }
  });
}
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

              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;

    }
}
<iframe name="sif3" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

  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;
                  }
<iframe name="sif4" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

I am only getting the message that the value doesn't exist even if the value is there in database.

CodePudding user response:

  1. You are using AJAX not the form submission method, so in back-end post() method won't work
  2. To transfer a value from server in php, one method is echo, but return is wrong here. Please rewrite your code like this View

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>');
      }
    }
  });
}
<iframe name="sif5" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

Controller

function filename_exists()
{
    $post = json_decode($_POST['result']);
    $username = $post[0];
    $prodid = $post[1];
    $exists = $this->product->filename_exists($prodid);
    echo $exists;
}
<iframe name="sif6" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

Modal

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;
}
<iframe name="sif7" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

enter code here
  • Related