2

私は現在、すばらしい本JavaScript the Definitive Guide-David Flanaganによる第6版を読んでいます。彼は、ここで説明するように、サーボからデータを受信する機能を示しています。

ユーザーの入力をサーバー側スクリプトに渡します。サーバー側スクリプトは、(理論的には)融資に関心のある地元の貸し手へのリンクのリストを返すことができます。この例には、実際にはそのような貸し手検索サービスの実用的な実装は含まれていません。ただし、サービスが存在する場合、この関数はそれで機能します。

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

URLnameプロパティで構成される多次元配列を期待しているようです。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 に答える