0

我在这个网站上搜索了一个解决方案,但不幸的是,根本没有用,所以我决定问你们。希望你能帮帮我。

我有这个将值推入数组的 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 文件传递​​的数据。

文件:

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 <br> undefined

然后,如果我将变量更改var title = obj.title;var title = obj.title[0]; 并更改description = obj.descriptiondescription = obj.description[0]它会给出输出(响应)

未捕获的类型错误:无法读取未定义的属性“0”

所需的输出应该是您获得了 Title1 < br> Description1但不幸的是我似乎做不到正确。

希望大家帮帮我,谢谢。

4

2 回答 2

1

您应该收到一组对象。data数组也是如此,但您将其视为对象。

尝试遍历数组:

$.each(obj,function( index, item){    
   console.log( item.title);    
})

或者,如果您想直接访问主数组中的值:

console.log( obj[0].title);
于 2013-01-02T05:01:37.077 回答
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;

希望有帮助。

于 2013-01-02T05:03:30.087 回答