Ich habe eine AJAX-Anfrage, um eine Liste von Adressen aus der Benutzer-Postleitzahl anzuzeigen. Es zeigt sie in einer Dropdown-Liste an, die der Benutzer auswählen kann. Ich habe die PHP, JS und Antwort unten gezeigt.So extrahieren Sie Daten aus einer JSON-Antwort
Ich habe die JSON-Antwort mit cURL. Ich benutze CI und jQuery.
Wie extrahiere ich die Daten, die ich brauche aus der Antwort und legen Sie sie in ein HTML-Optionen-Tags. Die ID wird in das Optionswert-Tag übernommen und die Beschreibung wird zwischen den öffnenden und schließenden Options-Tags angezeigt.
Hier ist meine JS:
$.get(
'<?=site_url('api/postcode') ?>',
{
'postcode' : postcode
},
function(data) {
$('#loader-address').hide();
// Show the dropdown list
var list = '<option value="">Choose...</option>';
// Create address options from JSON
},
'json'
);
Hier meine PHP-Funktion ist:
public function get_by_postcode($postcode)
{
/* Build up the URL to send the request to. */
$sURL = "http://services.Postcodeanywhere.co.uk/json.aspx?";
$sURL .= "account_code=" . urlencode($this->pca->account);
$sURL .= "&license_code=" . urlencode($this->pca->license);
$sURL .= "&action=lookup";
$sURL .= "&type=by_Postcode";
$sURL .= "&postcode=" . urlencode($postcode);
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$sURL);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$ContentsFetch = curl_exec($ch);
curl_close($ch);
return $ContentsFetch;
}
Hier ist die JSON respone:
"[{\"id\":\"5378660.00\",\"seq\":\"0\",\"description\":\"1 Carrington Close Croydon\"},\r\n{\"id\":\"5378661.00\",\"seq\":\"1\",\"description\":\"2 Carrington Close Croydon\"},\r\n{\"id\":\"5378662.00\",\"seq\":\"2\",\"description\":\"3 Carrington Close Croydon\"},\r\n{\"id\":\"5378663.00\",\"seq\":\"3\",\"description\":\"4 Carrington Close Croydon\"},\r\n{\"id\":\"5378664.00\",\"seq\":\"4\",\"description\":\"5 Carrington Close Croydon\"},\r\n{\"id\":\"5378665.00\",\"seq\":\"5\",\"description\":\"6 Carrington Close Croydon\"},\r\n{\"id\":\"5378666.00\",\"seq\":\"6\",\"description\":\"7 Carrington Close Croydon\"},\r\n{\"id\":\"5378667.00\",\"seq\":\"7\",\"description\":\"8 Carrington Close Croydon\"}]\r\n"