【发布时间】:2017-05-08 12:54:48
【问题描述】:
我发现了一个奇怪的问题。
使用 php 我在 mysql 数据库上运行选择查询,我试图将其返回到我的 ajax 调用,以便我可以循环遍历它,但我总是得到未定义的警报,我可以提醒整个 json 字符串,但不能定位值。
Ajax 代码:
$.ajax({
type: "POST",
url: 'database_data.php',
data: {
action: 'ct',
input: input
},
success: function (data) {
var obj = JSON.parse(data);
alert(obj[0].pid);
alert(data[0].pid);
},error: function(request, status, error){
alert("Error: Could not delete");
}
});
PHP 代码:
$base= mysqli_connect($dbhost, $dbuser, $dbpass, $dbbase);
if ($_POST['action']== "ct"){
$input = $_POST['input'];
$return_arr = array();
$sql = "SELECT pid FROM programmes WHERE complete_title LIKE '%$input%' LIMIT 30";
if ($result = mysqli_query( $base, $sql )){
while ($row = mysqli_fetch_assoc($result)) {
$row_array['pid'] = $row['pid'];
array_push($return_arr,$row_array);
}
}
mysqli_close($base);
echo json_encode($return_arr);
}
警报数据给出这样的响应:
[{"pid":"p00547jm"},{"pid":"p0054880"},{"pid":"p005492h"},...
如果我选择提醒 data[0], data[1] 它会打印每个单独的字符
【问题讨论】:
-
$.ajax({ dataType: "json", url: url, data: data, success: success });添加dataType,或使用简写:api.jquery.com/jquery.getjson -
您正在提醒
data[0]未解析。 -
obj是一个数组,所以你需要在那里使用正确的索引:obj[0].pid -
@CBroe ,最初它也不是那样工作的,我在提交问题时没有将其编入索引的原因是因为我正在尝试所有可能性哈哈
标签: javascript php mysql json ajax