我的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 "answers" falso "。我还使用$.get
jQuery函数进行了测试,结果同样糟糕。错误在哪里?
如果$nuevo和$fila['author']相等,则stristr($fila["autor"], $nuevo)
将返回"0",这在您的代码中相当于false
。
相反,您需要显式检查false
值,如:
if(stristr($fila["autor"], $nuevo) !== false) {
$res = "falso";
break;
}