检查ajax请求的响应

时间:2018-05-01 15:16:32

标签: php jquery ajax

我试图在if语句中使用从我的PHP文件发回的数据。

我真的不确定如何使用AJAX,因此经过一些研究我决定在这里问。

代码

function checkstatus(){
  $.post('wait.php',
  function(data){
    var status = data;
    if(status == "groda") {
      console.log("GRIS");
    } else {
      console.log("Sparris");
    }
  });
}

Wait.php

<?php
session_start();
include('var.php');
include_once('dbi.php');
$email = $_SESSION["email"];
$gamecode = $_SESSION['gamekod'];
$id = $rid['id'];
$status;
$sql = "SELECT * FROM $gamecode WHERE id='$id'";

if($result = mysqli_query($link, $sql)){
  if(mysqli_num_rows($result) > 0){
    while($row = mysqli_fetch_array($result)){
      $gamestatus = $row['status'];
      mysqli_close($link);
    }
  }
}
?>

我有一个PHP文件(wait.php),它从我的数据库中获取一个值,然后使用AJAX请求我正在尝试查看该文件的输出是什么。如果输出为groda,那么它将记录某些东西,如果不是,则不记录。

我的问题是我的if和else语句不起作用。它从数据库更新,但==部分没有完成其工作。即使值/数据为groda,它仍会记录sparris

1 个答案:

答案 0 :(得分:0)

  

&#34;即使价值/数据是groda,它仍会记录sparris&#34;

这在逻辑上是不可能的(见https://jsfiddle.net/wpvoq58g证明)。计算机不能违背您提供的说明。根据程序规则,它将始终以相同的方式处理相同的输入。

如果你考虑到这个事实,那么真正的问题必然是data并不包含你认为它的作用。检查空格或其他意外字符之类的内容,尤其是在字符串的开头或结尾处(有关此类效果的示例,请参阅https://jsfiddle.net/wpvoq58g/1)。

然后考虑清理源数据(如果合适),或者在测试其值之前添加一些将从输出中修剪空格或其他潜在无关字符的代码。

一个非常简单的例子 - 在将数据字符串与硬编码值进行比较之前,这将从数据字符串的任一端修剪空白:

if(status.trim() == "groda") {
     console.log("GRIS");
} else {
     console.log("Sparris");
}

请参阅https://jsfiddle.net/wpvoq58g/2/了解演示。