具有不同JSON响应的Ajax调用


Ajax call with different JSON responses

我有一个Ajax脚本,它调用一个PHP文件,对MySQL进行查询,然后用JSON格式化响应,这样我就可以使用它了。我的问题是,使用Ajax调用发送的1个id,我需要对不同的表进行多个查询,其中一些返回1个结果,另一些返回多个结果。所有这些数据都必须使用相同的Ajax调用来获取,所以我的问题是如何正确格式化JSON,以便将其与javascript一起使用。这是我的PHP:

try
{   
    $sql ="SELECT * FROM newLoads WHERE `id`='$id' LIMIT 1 ";   
    $s= $conn->query($sql);
}
catch (PDOException $e)
{
    echo "Error SQL SELECT";
    exit();
}
while ($row = $s->fetch())
{ 
    $load['id'] = $row['id'];
    $load['dateAdded'] = $row['dateAdded'];
    ...
    $all['load'] = $load;   
}
print json_encode($all);

返回为{"load":{"id":"00000361","dateAdded":"2015-01-15"...}}这很好,但我如何处理下一个必须包含多个响应的查询?我尝试将第二个查询添加到$all,但只有当它是单个结果时才有效,而它可能是多个结果。我想这只是一个语法问题,但我是Ajax的新手,所以任何帮助都将不胜感激。

您可以执行($s2是第二次查询的结果):

$all['items'] = array();
while ($row = $s2->fetch()) {
    $all['items'][] = $row;
}

在Javascript中,您需要循环浏览项目,例如:

for (i = 0; i < j.items.length; i++) { 
   console.log(j.items[i]);
}