繁体   English   中英

PHP脚本向AJAX调用返回了意外的值

[英]PHP script returns an unexpected value to the AJAX call

我的JavaScript:

nombre = window.prompt('Escribe el nombre del autor/artista/letrista:','');
    if(nombre != ''){
      $.ajax({
          url: "admin/nuevo_autor.php",
          type: "POST",
          data: {autor: nombre},
          success: function (res) {
              alert(res);
              if(res=='verdadero'){
                  var opt = document.createElement('option');
                  opt.text = nombre;
                  opt.selected = true;
                  sel.add(opt);
              }
              return true;
          }
      });
    }

调用'nuevo_autor.php':

<?php
$nuevo = $_POST["autor"];
require("../includes/database.php");

$select = <<<EOT
SELECT * FROM autor
WHERE 1
EOT;
$resultado = $mysqli->query($select);
$res = "verdadero";
for($i=0;$i<$resultado->num_rows; $i++){
    $fila = mysqli_fetch_array($resultado, MYSQLI_ASSOC);
    if(stristr($fila["autor"], $nuevo)) {
        $res = "falso";
        break;
    }
}
echo json_encode($res);
?>

Javascript警报显示: FIN (西班牙语: END )。 既不是“ verdadero ”也不是“ falso ”。 我还使用$.get jQuery函数进行了测试,结果$.get相同。 错误在哪里?

如果$ nuevo和$ fila ['author']相等,则stristr($fila["autor"], $nuevo)将返回“ 0”,在您的代码中将等同于false

相反,您需要显式检查false值,如下所示:

if(stristr($fila["autor"], $nuevo) !== false) {
    $res = "falso";
    break;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM