Les informations peuvent être interrogées sur la page PHP, mais undefined est affiché sur la page front-end
<html>
<head>
<meta charset="utf-8">
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
<p>
<input type="text" name="idNum" id="idNum">
<input type="button" value="查询" id="btnSearch">
<ul></ul>
</p>
<p id="myp"></p>
<script type="text/javascript">
$(function(){
$("#btnSearch").bind("click",function(){
//ajax
$.post(
"search.php",
{num:$("#idNum").val()},
function (data) {
console.log(data);
$("ul").append(
"<li>mac:"+data.mac+"</li>"+"<li>name:"+data.name+"</li>"+"<li>password:"+data.password+"</li>"
);
}
);
})
});
</script>
</body>
</html>
Le code PHP est le suivant
<?php
header("Content-type:text/json;charset=utf-8");
$num = filter_input(INPUT_GET, 'num', FILTER_SANITIZE_STRING);
//$num=$_GET["num"];
class p_mysqli extends mysqli {
public function __construct($host, $user, $pass, $db) {
parent::__construct($host, $user, $pass, $db);
if (mysqli_connect_error()) {
die('连接数据库发生错误咯: (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
}
}
}
$mysqli=new mysqli('127.0.0.1', 'root', 'wl123456','proxys');
if ($mysqli->connect_errno) {
die('Connect Error:'.$mysqli->connect_error);
}
$mysqli->set_charset('utf8');
$sql = "SELECT id,mac,name,password FROM s_user WHERE id = ?";
//$sql = "SELECT mac,name,password FROM s_user WHERE id = '207545'";
// 获取预处理
$stmt = $mysqli->prepare($sql);
// 绑定参数
$stmt->bind_param("s", $num);
// 执行
$stmt->execute();
// 获取结果集
$result = $stmt->get_result();
// 获取数据
$data = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($data);
?>
console.log(data) a constaté que le tableau est vide
La page HTML affiche le résultat comme ceci : mac:undefined
On a l'impression que la requête n'a pas renvoyé de données. Utilisez les outils de débogage du navigateur pour voir la valeur de retour de la requête
Vous avez indiqué tous les problèmes. Les données renvoyées par l'arrière-plan sont vides. Si elles sont vides, ne suivez pas la logique suivante ! Vous avez utilisé la valeur clé mac inexistante en js, elle doit être indéfinie
Imprimez les données de la variable avant le dernier écho sur la page PHP pour voir s'il y a une valeur, imprimez la valeur du résultat dessus pour localiser le problème étape par étape
.