簡體   English   中英

具有不同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]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM