我正在尝试使用AJAX从外部PHP文件中获取一些JSON,并将其放在选项列表中。
我有XAMPP并运行了Apache和Mysql,并且所有东西都可以用于1个JSON对象,但是当我添加第二个对象时,它给了我一个错误:Uncaught SyntaxError:意外的标记<在JSON中的位置0。 对不起,如果我不善于解释自己是新人。
这是我的php:
<?php
//connection to mysql(my connection code goes here)
//feeders
$feeders = [];
$sql = "SELECT Name FROM feeder";
$result = $conn->query($feeder_sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$feeders[] = $row["Name"];
};
};
$feeder_list = array("feeders" => $feeders);
echo json_encode($feeder_list);
//recorders
$recorders = [];
$sql = "SELECT Name FROM recorders";
$result = $conn->query($recorder_sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$recorders[] = $row["Name"];
};
};
$recorder_list = array("recorders" => $recorders);
echo json_encode($recorder_list);
?>
这是我的Jquery:
$(function() {
var feeders;
var recorders;
$.get('home.php', function(data){
feeders = JSON.parse(data).feeders;
for (var i = 0; i < feeders.length; i++) {
$("#feeders").append("<option value =" + feeders[i] + ">" + feeders[i] + "</option>");
}
recorders = JSON.parse(data).recorders;
for (var i = 0; i < recorders.length; i++) {
$("#recorders").append("<option value =" + recorders[i] + ">" + recorders[i] + "</option>");
}
});
});
答案 0 :(得分:1)
您在服务器端多次使用 echo ,这是 jQuery 部分的组合响应。将两个查询结果合并到一个数组中,最后进行一次编码和回显。相应地调整 jQuery 部分。
$output = [];
//feeders
$feeders = [];
$sql = "SELECT Name FROM feeder";
$result = $conn->query($feeder_sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$feeders[] = $row["Name"];
};
};
$output['feeders'] = $feeders;
//recorders
$recorders = [];
$sql = "SELECT Name FROM recorders";
$result = $conn->query($recorder_sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$recorders[] = $row["Name"];
};
};
$output['recorders'] = $recorders;
// final output
echo json_encode($output);