我从MySQL获取数据并回显JSON编码数据,如下所示:
$result = mysql_query ("SELECT * FROM order_list");
$myjsons = array();
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
$myjsons[$i] = json_encode(array($row));
$i++;
}
echo json_encode($myjsons);
我有一个Javascript函数,它读取字符串并在文本框中显示:
if(ajaxRequest.readyState == 4){
$.post('userfind.php', function(data) {
$("#txtfld").val(data);
var arr =data.slice(1);
var user_arr = arr.slice(0,-1);
var json = user_arr,
obj = JSON.parse(json);
alert(obj.user_id);
$("#resultTXT").val(obj.user_id);
},'json'
);}
}
ajaxRequest.open("POST", "userfind.php", true);
ajaxRequest.send(null);
}
问题是txtfld将字符串显示为[{“user_id”:“2790”,“fre ..... tst”:“”}]并且resultTXT因为两个[]而没有显示任何内容。我试图使用切片删除它们,但似乎切片不适用于JSON字符串。我还可以做什么来删除[],以便resultTXT显示user_id?
由于
答案 0 :(得分:0)
$result = mysql_query ("SELECT * FROM order_list");
$myjsons = array();
while ($row = mysql_fetch_assoc($result)) {
$myjsons[] = $row;
}
header('Content-type: application/json');
echo json_encode($myjsons);
这为您提供了正确格式化的json
在javascript中访问你的json你做:
var obj=JSON.parse(json);
我假设你的mysql返回一个订单或用户列表[{“user_id”:1},{“user_id”:2}]所以如果你想访问第一个用户的id:
obj[0].user_id
但如果我误解了你可以发布更多关于你的json的信息。