我在这个网站上搜索了一个解决方案,但不幸的是,根本没用,所以我决定问你们。希望你帮助我。
我有这个将文件推送到数组中的PHP文件。
PHP文件:
$out_html = array();
$type1_ach = array(
"title" => $ach_info[0], //Title1 is Value of $ach_info[0]
"description" => $ach_info[1] //Description1 is Value of $ach_info[1]
);
array_push($out_html, $type1_ach);
$type5_ach = array(
"title" => $ach_info[0], //Title2 is Value of $ach_info[0]
"description" => $ach_info[1] //Description2 is Value of $ach_info[1]
);
array_push($out_html, $type5_ach);
我用JSON回应它,因为我通过jquery传递它。
echo json_encode($out_html);
这是我的HTML文件,它应该输出我从PHP文件传递的数据。
HTML文件:
function test_pop() {
var fb_id = "1**************"; //Facebook ID
var v_id = "***********"; //Video ID
$.post('http://mysite.com/test.php', {fb_id: fb_id, v_id: v_id}, function(data) {
var obj = $.parseJSON(data);
var title = obj.title;
var description = obj.description;
var whole_ach = "You obtained " + title + "<br>" + description;
console.log(whole_ach);
});
}
它在控制台日志中输出响应:
您获得了undefined&lt; br&gt;未定义
然后,如果我将变量var title = obj.title;
更改为var title = obj.title[0];
并description = obj.description
进入description = obj.description[0]
它会提供输出(响应)
未捕获的TypeError:无法读取未定义的属性“0”
所需的输出应为您获得了Title1&lt; br&gt; Description1 ,但不幸的是我似乎做不到。
希望你们帮助我,谢谢。
答案 0 :(得分:1)
您应该收到一个对象数组。所以data
是一个数组,但你把它视为一个对象。
尝试循环遍历数组:
$.each(obj,function( index, item){
console.log( item.title);
})
或者,如果您想直接访问主数组中的值:
console.log( obj[0].title);
答案 1 :(得分:1)
需要更新JavaScript代码:
function test_pop() {
var fb_id = "1**************"; //Facebook ID
var v_id = "***********"; //Video ID
$.post('http://mysite.com/test.php', {fb_id: fb_id, v_id: v_id}, function(data) {
var obj = $.parseJSON(data);
var title = obj[0].title;
var description = obj[0].description;
var whole_ach = "You obtained " + title + "\n" + description;
console.log(whole_ach);
});
}
您需要指定数组索引号:
var title = obj[0].title;
var description = obj[0].description;
希望有所帮助。