使用从 jQuery $.post 返回的数组
Use returned array from jQuery $.post
我有一个简单的代码,可以在数据库中切换两个值并将它们返回给jQuery,因此我可以为用户切换它们而无需刷新apge。
问题是,我将其作为数组返回,控制台.log显示数组正常,但我不知道如何从数组中获取数据。
通过PHP返回:
$data = array($id, $img1, $img2);
echo json_encode($data);
j查询:
$.post("bg_images_ajax.php", "switch=yes&id="+id).done(function(data){
$("#image-left-"+id).attr("src", "/images/backgrounds/"+data[1]).attr("alt", data[1]);
$("#image-right-"+id).attr("src", "/images/backgrounds/"+data[2]).attr("alt", data[2]);
console.log(data);
});
data[1] 几乎每次我使用 Ajax 时都有效,但在这里看起来它将整个返回的数组作为一个简单的字符串(data[2] 返回 6,这是 console.log 返回的数组 ["6"、"blabla"、"blalablala"] 中的第三个字符)。
我试图将数组返回为:
["id" = "6", "img1" = "blabla", "img2" = "blalablala"]
并使用它来获得我需要的东西:
data.img1
但这只返回未定义。
我检查了关于 jQuery.post http://api.jquery.com/jquery.post/的页面但我要么是盲人,要么就是太累了,因为我看不出我做错了什么。
Ps.:我也尝试将响应格式放入jQuery代码,但它不起作用(因为我不太确定确切地放置它,尝试了两个地方,如此处所示(不是同时))。
$.post("bg_images_ajax.php", "switch=yes&id="+id, "json").done(function(data){
$("#image-left-"+id).attr("src", "/images/backgrounds/"+data[1]).attr("alt", data[1]);
$("#image-right-"+id).attr("src", "/images/backgrounds/"+data[2]).attr("alt", data[2]);
console.log(data);
}, "json");
PHP 缺失
header("Content-Type: application/json");
并默认发送text/html
.
jQuery将结果视为(无效的)HTML字符串,而不是将JSON解析为预期的数据结构。
此外,如果你想要一个对象(具有命名属性)而不是一个数组(由数字索引访问),那么你必须从 PHP 中的关联数组开始:
$data = array("id" => $id, "img1" => $img1, "img2" => $img2);
相关文章:
- Regex提取URL返回数组的一部分;未定义”;
- 为循环嵌套的Javascript未按预期返回数组
- 从函数中的函数返回数组时出错
- JSON返回数组的奇怪结果
- 如何从NodeJS中的模块返回数组
- 在JS中返回数组的大整数运算
- 从Nodejs中的函数返回数组,并将其发送到ejs视图
- 从函数返回数组
- undercore返回数组中对象的indes,其中单词存在于对象中的句子中
- Yui Get 复选框返回数组而不是布尔值
- 从异步调用返回数组,然后为数组的每个元素返回其他异步调用
- JavaScript闭包和返回数组元素
- 按流星空格键模板中的索引返回数组项
- 从多个文件中推送文本的函数(使用html5文件读取器上传)返回数组
- 我想返回数组
- PHP和Ajax在回调和返回数组中使用foreach循环
- Javascript-如何通过以字符串作为参数返回数组
- 从JSON调用SQL返回数组时出现问题
- Jasmine spyOn使用伪造的返回数组测试功能
- 无法从从sql数据库读取的javascript函数中获取返回数组