我正在进行ajax调用以检索数据。数据是这样的:
[{"id":"16","location_name":"agga"}]
这是因为php返回:echo json_encode($getLoc);
现在在javascript中我需要将输入值更改为给定ID的json,并将位置名称显示为div中的字符串。我怎么能这样做?
我尝试了什么: data.id undefined
data [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 :(得分: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/
答案 1 :(得分:0)
尝试这种模式
var json = [{ "id": "16", "location_name": "agga"}];
alert(json[0]["id"]);
alert(json[0]["location_name"]);
$("#locInfo2").html(json[0]["location_name"]);
答案 2 :(得分:0)
是来自响应的数据变量是json格式的字符串吗? 如果是这样,那么:
obj = JSON.parse(data);
alert(obj[0].id);
答案 3 :(得分: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;
});