为什么isset post不适用于使用PHP的ajax搜索?

时间:2018-08-15 12:59:49

标签: php jquery ajax

我在使用PHP和AJAX进行搜索时遇到问题。目前,当我键入某些内容时,我只能在控制台中看到数字,而ActionResult不起作用。

如果我删除echo并输入任何内容,那么if (isset($_POST['invite'])) {会显示用户,但搜索无效。

我在哪里弄错了?

echo

form-search-user.php

$(document).ready(function() {
  $('#invite_cc').keyup(function() {
    var query = $(this).val();
    if (query != '') {
      $.ajax({
        url: 'form-search-user.php',
        type: 'POST',
        data:{query:query},
        success: function(response) {
          $('#invite_result_cc').html(response);
          console.log(response);
        }
      });
    }
  });
});

HTML

<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/mysql/config.php');

if (isset($_POST['invite'])) {

  $invite_rows_cc = $db->QueryGetNumRows("SELECT * FROM user_about WHERE firstname LIKE '%".$_POST['invite']."%' OR lastname LIKE '%".$_POST['invite']."%' LIMIT 5");
  $invite_value_cc = $db->QueryFetchArrayAll("SELECT * FROM user_about WHERE firstname LIKE '%".$_POST['invite']."%' OR lastname LIKE '%".$_POST['invite']."%' LIMIT 5");

  if ($invite_rows_cc > 0) {

    foreach ($invite_value_cc as $key) {
      echo "
      <div class='invite_search_cont'>
        <div class='invite_search_img'><img src='{$key['profile_image']}'></img></div>
        <div class='invite_search_name'>{$key['firstname']} {$key['lastname']}</div>
      </div>
      ";
    }

  } else {

    echo 'No results';

  }

}

2 个答案:

答案 0 :(得分:2)

您不会在帖子数组中发送任何名为“邀请”的内容:

data:{query:query}

您可以通过添加适当的键:值对来解决此问题:

data:{query:query, invite:'invite'}

现在$_POST['invite']将设置为“邀请”。您可以使用任何想要的变量值。例如:

if (isset($_POST['invite']) && 'invite' == $_POST['invite'])...

编辑,现在我可以看到您打算$_POST['invite']包含搜索值,因此请对AJAX进行以下更改:

data:{invite :query}

这将设置变量$_POST['invite']的名称,并使该数组变量的值成为query的值

答案 1 :(得分:0)

更改

if (isset($_POST['invite'])) {

if (isset($_POST['query'])) {