Php 检查来自ajax请求的响应

Php 检查来自ajax请求的响应,php,jquery,ajax,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"); }

我试图在
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


“即使值/数据为groda,它仍会记录sparris”

这在逻辑上是不可能的。计算机不能违背你给它的指令。根据程序规则,它将始终以相同的方式处理相同的输入

如果你考虑这个事实,那么很明显,真正的问题必须是<代码>数据< /代码>不包含你认为它所做的。检查是否有空格或其他意外字符,尤其是在字符串的开头或结尾(请参阅类似内容的效果示例)

然后考虑清洗源数据,如果合适的话,或者添加一些代码,在测试其值之前,将从输出中修剪空白或其他潜在的无关字符。 一个非常简单的示例-这将在将数据字符串与硬编码值进行比较之前,从数据字符串的任一端修剪空白:

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

请参阅演示。

“如何正确编写包含数据的if和else语句”……这有点含糊不清。“正确”是根据可用数据,让它做任何你想让它做的事情。您没有给我们一个具体的问题来解决,但我想您的问题是您的
if
语句没有达到您的预期,这可能是因为您的PHP脚本没有实际返回任何数据。但这只是一个猜测……你能确认你的实际问题是什么吗(而不是假设一个有点抽象的问题)?我的问题是我的if和else语句不起作用。它从数据库更新,但==不检查。即使值/数据是groda,它仍然会记录sparris。希望这有助于“即使值/数据是groda,它仍然会记录sparris”,这是不可能的(请参阅以获取证据)。更有可能的是,这些数据并不是你想象的那样。检查是否有空格或其他意外字符,尤其是在字符串的开头或结尾(请参阅类似内容的效果示例)。不幸的是,您没有向我们展示如何从PHP输出,也没有展示任何示例数据,因此我无法在这方面为您提供太多帮助,只是说您需要使用浏览器工具进行一些调试您回答了我的问题,谢谢。请您用“检查输出”或类似的方式“回答问题”,groda之后有“无止境”数量的退格^^^没问题。另外,没有理由编辑你的问题来指出它已经解决了-人们可以看到,因为答案是“接受的”:-)