2013-03-24 137 views
2

我目前正在讀大書JavaScript的權威指南 - 第6版由大衛·弗拉納根在本書中,他顯示的功能這裏描述從servor接收的一些數據:PHP獲取服務器響應

將用戶的輸入傳遞給服務器端腳本,該腳本可以(理論上) 返回有興趣貸款的本地貸方的鏈接列表。 這個例子實際上並沒有包含一個 的工作實現,例如貸方發現服務。但是如果服務存在,這個功能就可以使用它。

function getLenders(amount, apr, years, zipcode) { 
    if (!window.XMLHttpRequest) return; 

    var ad = document.getElementById("lenders"); 
    if (!ad) return; 

    var url = "getLenders.php" + 
     "?amt=" + encodeURIComponent(amount) + 
     "&apr=" + encodeURIComponent(apr) + 
     "&yrs=" + encodeURIComponent(years) + 
     "&zip=" + encodeURIComponent(zipcode); 

    var req = new XMLHttpRequest(); 
    req.open("GET", url); 
    req.send(null); 

    req.onreadystatechange = function() { 
     if (req.readyState == 4 && req.status == 200) { 
      var response = req.responseText; 
      var lenders = JSON.parse(response); 

      var list = ""; 
      for(var i = 0; i < lenders.length; i++) { 
       list += "<li><a href='" + lenders[i].url + "'>" + 
        lenders[i].name + "</a>"; 
      } 
      ad.innerHTML = "<ul>" + list + "</ul>"; 
     } 
    } 
} 

他沒有提供任何PHP腳本來做到這一點。我正在嘗試編寫getLanders.php腳本來處理此響應,並希望得到任何建議。

這是我到目前爲止有:

<?php 
    if($_GET["amount"] || $_GET["apr"] || $_GET["years"] || $_GET["zipcode"]) 
    { 
     echo // What format should I make the list of lenders so that is it correctly 
      // broken up and handled by the JSON.parse() function? 
    } 
?> 

所以,我的問題是什麼是呼應的信息列表給客戶端,以便大衛Flanagens以上函數可正確處理請求的正確方法?

感謝您的任何建議。

回答

2

它看起來像它的預期由URLname性質的多維數組。您可以使用json_encode()來回顯JSON數據,所以類似於:

$data = array(
    array('name' => 'foo', 'url' => 'url'), 
    array('name' => 'bar', 'url' => 'url2'), 
); 
echo json_encode($data);