2014-02-19 312 views
0

我正在做一個ajax調用來檢索數據。數據是這樣的:獲取json返回數據的值

[{"id":"16","location_name":"agga"}] 

這是因爲在PHP返回:回波json_encode($getLoc);

現在在JavaScript我需要改變一個輸入值到JSON給定的ID和顯示位置的字符串名字在一個div中。我怎樣才能做到這一點 ?

我的嘗試:

data.id不確定 數據[0] .ID ..undefined 數據顯示[{"id":"16","location_name":"agga"}]

然後我因子評分也許我需要循環,所以我做每一個jquery .. ,但也不會返回任何..

所以現在我來到這裏,等我做什麼我錯了?

代碼:

$('#deliveryzip').on('change', function(){ 

    //Get zip first 4 chars 
    var zip = $('#deliveryzip').val().substring(0,4); 

     //Check if zip is integer 
     if (isNaN(zip)) { 
      //alert("zip klopt niet"); 
      return false; 
     } 

    //Get locationID from zipcode 
    $.post(jssitebaseUrl+'/ajaxFile.php',{"zip":zip,"action":"getLocInfo"},function(data){ 

     $("#locInfo2").html(data); //shows the json returned object 
     var show = true; 
     return false; 
    }); 
+0

做到像data.first [ 「location_name」] –

+0

alert(data.first [「id」]); ..顯示99行上的錯誤,這是 – rZaaaa

+0

@rZaaaa你可以看到我的答案和演示。你需要使用'JSON.parse' –

回答

0

json_encode返回一個JSON字符串因此你需要先解析JSON成一個對象,然後訪問數據,即

//Get locationID from zipcode 
$.post(jssitebaseUrl+'/ajaxFile.php',{"zip":zip,"action":"getLocInfo"},function(data){ 
    var location = JSON.parse(data)[0]; // take first item as you appear to receive an array with 1 item 
    $('#' + location.id).val(location.location_name); 
    var show = true; 
    return false; 
}); 
+0

var jsonObj = JSON.parse(data); alert(data.location_name);顯示undefined – rZaaaa

+0

@rZaaaa是的,這是一個錯字,我正在編輯我的答案。看到我的新更新。 – James

+0

謝謝你很多...現在工作...所以問題是我得到1結果? – rZaaaa

0

嘗試這種模式

 var json = [{ "id": "16", "location_name": "agga"}]; 
     alert(json[0]["id"]); 
     alert(json[0]["location_name"]); 
     $("#locInfo2").html(json[0]["location_name"]); 
1

您需要使用JSON.parse。快速示例;

HTML:

<input type="text" name="test" id="test" value=""/> 
<input type="button" name="update" id="update" value="Update"/> 

JS:

$("#update").on("click", function() { 
    $("#test").val(json[0].id); 
}) 
var a = '[{"id":"16","location_name":"agga"}]'; 
var json = JSON.parse(a); 

在這裏你可以看到演示:http://jsfiddle.net/y8TwH/

0

是從響應進來的JSON字符串數據變量格式? 如果這樣然後做:

obj = JSON.parse(data); 
alert(obj[0].id);