jQuery $ .post处理JSON响应

我在弄清楚如何从jQuery $ .post()请求中正确读取JSON响应时遇到了麻烦。

在下面的jQuery代码中,我根据对应的“ color_entry_id”(用作键)从DOM中的元素填充字符串的关联数组:

var image_links = {};

$(this).find('input[name="color_id"]').each(function() {

var color_entry_id = $(this).val();

var image_link = $(this).parent().find('input[name="edit_image"].' + color_entry_id).val();

image_links[color_entry_id] = image_link;

});

然后,我发出POST请求,发送“ image_links”数组:

$.post(

"test.php",

{ id: product_id, "images[]": jQuery.makeArray(image_links) },

function(data) {

var response = jQuery.parseJSON(data);

$.each(response.images, function(index, item) {

alert(item);

});

}

);

另外,如上所示,我尝试遍历响应数组并输出要成为字符串的每个项目,但是我只得到“ [object

Object]”作为警报值。我不知道如何使其显示我要显示的字符串!

这是test.php的PHP代码:

<?php

$product_id = $_POST['id'];

$images = $_POST['images'];

$response = array();

$response['id'] = $product_id;

$response['images'] = $images;

echo json_encode($response);

?>

DOM的相关部分如下所示:

<input type='hidden' value='{{ color_entry_id }}' name='color_id' />

<p><img src='{{ color_img_link }}' /></p>

<p>Image Link: <input class='{{ color_entry_id }}' name='edit_image' type='text' size='150' value='{{ color_img_link }}' /></p>

<div class='colors {{ color_entry_id }}'>

<div class='img_color'>

<a href='javascript:void' style='background:...' class='selected'></a>

<p>...</p>

</div>

</div>

我想知道我是在PHP端上错误地执行JSON编码还是在jQuery中错误地遍历响应。任何帮助深表感谢!!

回答:

好吧..您从帖子中获取的数据对象是:

{"id":"abc","images":[{"color123":"somelink.com\/123","color223":"somelink.com\/‌​223"}]};

如果更改警报,则会找到所需的值:

$.post(

"test.php",

{ id: product_id, "images[]": jQuery.makeArray(image_links) },

function(data) {

var response = jQuery.parseJSON(data);

var images = response.images[0];

for (var i in images){

alert(images[i]);

}

}

);

以上是 jQuery $ .post处理JSON响应 的全部内容, 来源链接: utcz.com/qa/408478.html

回到顶部