使用不同的JSON响应调用Ajax

时间:2015-02-16 21:02:56

标签: php jquery mysql ajax json

我有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的新手,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:2)

您可以执行($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]);
}