在PHP頁面可以查詢到信息,但是在前端頁面就顯示undefined
<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>
PHP程式碼如下
<?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)發現陣列是空的
HTML頁面如此顯示結果:mac:undefined
感覺像是請求沒有回傳資料。用瀏覽器調試工具看下請求的回傳值
你把問題都說出來了啊,後台回傳的數據為空,判斷下數據,空的時候就不走下面的邏輯!你在js裡又使用了不存在的鍵值mac,一定是undefined
在PHP頁面最後echo之前印變數data看有沒有值,如果沒有值 再在上面印result的值就這樣一步一步定位問題