这是我的情况:
我有一个包含2个字段的MYSQL数据库:'ID'和'string'。 'string'字段以序列化数组的形式存储字符串。因此,为了将其解压缩,我使用这个PHP代码:
$rez=mysql_query("SELECT * FROM drawings") or die(mysql_error());
$array=array();
while($row=mysql_fetch_array($rez))
{
$array[]=unserialize($row['string']);
}
现在我的$ array变量应该包含一个数组数组,对吧?假设我做得正确,那么我echo $array;
所以我的ajax调用会在return_data中捕获它,如下所示:
var return_data = hr.responseText;
为了测试我是否可以提取值,然后尝试实现以下代码,但它似乎不起作用:
var arr = return_data.split(",");
var sub_arr = arr[0].split(",");
alert(sub_arr[0]);
我做错了什么?
其他信息:
我基本上在MYSQL数据库中存储了一堆坐标,每一行都是一个单独的坐标数组,例如(12,13,14,16,17,20) - 这些是3个“点”包含在一排。
然后我使用ajax调用以数组的形式从数据库中提取所有记录,该数组包含多个数字的数组(我知道每两个相邻的数字组成一个点)。
编辑:
chrome javascript控制台输出:
'undefined'的事件处理程序出错:无法读取未定义的属性'disable_serps_pos_numbers'TypeError:无法读取未定义的属性'disable_serps_pos_numbers' 在BasePlugin.GooglePlugin.getSomeCorePrefs(chrome-extension://akdgnmcogleenhbclghghlkkdndkjdjc/content_scripts/google.js:129:48) 在chrome-extension://akdgnmcogleenhbclghghlkkdndkjdjc/lib/lib.js:44:25 在miscellaneous_bindings:287:9 在Event.dispatchToListener(event_bindings:356:21) 在Event.dispatch_(event_bindings:342:27) 在Event.dispatch(event_bindings:362:17) at Object.chromeHidden.Port.dispatchOnMessage(miscellaneous_bindings:253:22)
答案 0 :(得分:3)
while($row=mysql_fetch_array($rez))
{
$array[]=unserialize($row['string']);
}
echo json_encode($array);
然后在Javascript代码中(假设jQuery):
$.parseJSON(return_data)
然后你可以像Javascript中的2D数组一样使用它。
答案 1 :(得分:1)
使用jQuery和PHP附带的标准函数将数组转换为JSON数据并返回到数组。
与PHP中的json_encode()和json_decode()类似
答案 2 :(得分:0)
首先,我强烈建议您切换到使用PDO进行SQL查询,但要回答您的问题,您说您正在做:
echo $ array;
这将导致数组转换为字符串错误。
我建议使用echo json_encode($ array);这会将数组转换为json对象。