我有一个php文件,我从数据库中提取数据,我想在javascript中访问其内容。当我尝试使用data [0] .card_id访问数组时,我得到“未定义”。
这是我的javascript
$(document).ready(function() {
var userId = 1;
var updateUrl;
$.ajax({
type: "POST",
url: "url",
data: {userId: userId},
success: function(data) {
alert(data[0].card_id);
var suffix = ".html";
fb.start('../Animations/' + updateUrl[0].card_id + suffix);
}
});
}
这是我的php文件
<?php
include('connect.php');
$user_id = $_POST['userId'];
$db = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL";
}
$select = "SELECT card_id FROM decks WHERE id=$user_id ORDER BY order_num";
$result = mysqli_query($db, $select);
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
$animation[] = array(
'card_id' => $row['card_id'],
);
}
json_encode($animation);
echo $animation;
mysqli_close($db);
?>
该数组包含以下数据
阵 ( [0] =&gt;吃 [1] =&gt;木乃伊
等。 )
答案 0 :(得分:1)
你有两个问题。
首先:您没有使用json_encode
的返回值做任何事情。
第二:PHP声称它正在发回HTML,所以它不会被解析为JSON。
header("Content-Type: application/json");
echo json_encode($animation);
答案 1 :(得分:1)
您需要将dataType: "json"
添加到您的ajax调用中。
$.ajax({
type: "POST",
dataType: "json",
url: "url",
data: {userId: userId},
success: function(data) {
alert(data[0].card_id);
var suffix = ".html";
fb.start('../Animations/' + updateUrl[0].card_id + suffix);
}
});
http://api.jquery.com/jQuery.getJSON/
无需更改MIME类型,jQuery将处理此问题。