POST变量始终为空

时间:2018-11-11 11:31:24

标签: javascript php jquery sql ajax

这是我管理用jquery.ajax发送的数据的方法。默认情况下,发送一个空字符串,每次更改时,我都会观察输入的更改并重新发送。通过控制台,一切都很好,但是在PHP $this->searchField中,其值始终为空字符串

function checkInfo(){
        if(isset($_POST['searchField'])){
            $this->searchField = json_decode($_POST['searchField']);

                if ($this->searchField != ""){
                    $this->query = "SELECT * FROM myguests WHERE firstName like '%".$searchField."%'";
                }
                else if ($this->searchField == "") {
                    $this->query = "SELECT * FROM myguests ORDER BY id";
                }
                $this->tableDisplay();
                exit();
            }
            else{
                return "error";
            }
        }

这是我的jquery ajax函数:

function searchGuests(users){
  var data = {
    "searchField": users
  };
  console.log(data);
  $.ajax({
      type: "POST",
      dataType: "text",
      url: "controllers/manageTable.php",
      data: data
    })
    .done(function(tr) {
      $("#tableBody").empty();
      $("#tableBody").append(tr);
    })
    .fail(function(error){
      console.log(error);
    });
};

知道我缺少什么吗?

1 个答案:

答案 0 :(得分:-1)

尝试将用户编码为字符串,然后再发送。

function searchGuests(users){
  var data = {
    "searchField": JSON.stringify(users);
  };
  console.log(data);
  $.ajax({
      type: "POST",
      dataType: "text",
      url: "controllers/manageTable.php",
      data: data
    })
    .done(function(tr) {
      $("#tableBody").empty();
      $("#tableBody").append(tr);
    })
    .fail(function(error){
      console.log(error);
    });
};