2

我目前正在阅读David Flanagan 的伟大书籍 JavaScript the Definitive Guide - 6th Edition,他在书中展示了一个从服务器接收一些数据的函数,如下所述:

将用户的输入传递给服务器端脚本,该脚本可以(理论上)返回一个链接列表,指向有兴趣进行贷款的本地贷方。此示例实际上不包括此类贷方查找服务的工作实现。但是如果服务存在,这个函数就可以使用它。

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?
  }
?>

所以,我的问题是向客户端回显信息列表的正确方法是什么,以便上面的 David Flanagens 函数可以正确处理请求?

感谢您的任何建议。

4

2 回答 2

2

URL看起来它需要一个由和name属性组成的多维数组。您可以使用json_encode()回显 JSON 数据,因此类似于:

$data = array(
   array('name' => 'foo', 'url' => 'url'),
   array('name' => 'bar', 'url' => 'url2'),
);
echo json_encode($data);
于 2013-03-24T21:47:23.037 回答
1

可以使用 json_encode 函数来完成:http ://www.php.net/manual/en/function.json-encode.php

于 2013-03-24T21:46:02.057 回答