我正在尝试将数据库中的数据添加到jquery中以在网站上呈现。
例如: 使用example.php
<?php
function testFunction() {
$data = array()
$mydata = new stdClass;
$mydata->example = 'test';
$data[] = $mydata
return json_encode($data);
}
echo testFunction();
?>
离 的index.html
<script>
$.ajax({
type: 'POST',
url: 'example.php',
data: {map: map},
cache: false,
dataType: 'json',
success: function(response) {
console.log(response[0].example);
}
});
</script>
输出:
的console.log(响应);
[“test”,$ family:function,$ constructor:function,each:function,clone:function,clean:function ...]
的console.log(响应[0]。实施例);
未定义
基本上,我收到的回复很好,当我记录它时它给了我一个有意义的结构。但是我似乎无法找到访问数组内部对象的正确方法,上面的例子只返回undefined。这请问的正确语法是什么?
答案 0 :(得分:4)
您需要JSON.parse(response);
回复。你应该能够像你需要的那样访问它..
var parsed_reply = JSON.parse(response);
编辑实际查看代码后
PHP
<?php
$data['example'] = "test";
echo json_encode($data);
?>
JAVASCRIPT
<script>
$.ajax({
type: 'POST',
url: 'example.php',
data: {map: map},
cache: false,
dataType: 'json',
success: function(response) {
console.log(response['example']);
}
});
</script>
输出:“测试”
答案 1 :(得分:1)
您需要在example.php中调用testFunction()
<?php
function testFunction() {
$data = array()
$mydata = new stdClass;
$data[] = $mydata->example = 'test';
return json_encode($data);
}
echo testFunction();
?>
答案 2 :(得分:1)
function testFunction() {
$data = array();
$mydata = new stdClass;
$mydata->example = 'test';
$data[] = (array) $mydata;
return json_encode($data);
}
echo testFunction();
回复是:
[{"example":"test"}]
此处的关键是(array) $mydata
,可将stdclass
转换为数组,然后再将其放入$data