我试图从php文件中查询数据库,然后将结果(每行的userLOC)返回给调用的Jquery函数。
调用Jquery:
$.post(url, data, function (data)
{
alert(data);
})
重新启动PHP:
$sql = "Select * from location";
$result = mysql_query($sql);
$stack = array();
while($row = mysql_fetch_array($result))
{
array_push($stack, $row["userLOC"]);
}
return $stack;
问题是我无法正确返回它,如果我“回显$ stack”它不起作用它说我试图将数组转换为字符串。如果我“echo $ stack [0]”它将正确地给我数组中的第一个结果,所以我知道值正确存储(如$ stack [1]等),但这只发送一个值。如果我“返回$ stack”,如图所示,没有任何警报,因为没有任何回应。我将如何获取整个数组,以便我可以迭代并在jquery端使用它们?
答案 0 :(得分:3)
在PHP中
$foo = array();
echo $foo;
将生成文字字符串Array
作为输出。
您需要将数组转换为字符串。由于您正在处理Javascript目标,因此使用JSON作为完美的方法:
$foo = array('a', 'b', 'c', 'd', 'e');
echo json_encode($foo);
然后在你的JS代码中:
$.get(...., function (data) {
alert(data[1]); // spits out 'b'
});
请记住告诉jquery你期待JSON输出。
答案 1 :(得分:1)
您需要以可以通过HTTP传输到客户端并用于获取原始数据的方式包装(序列化)数据。 通常的容器格式是XML和JSON。 JSON非常适合在JavaScript中使用,因此使用PHP函数json_encode()并回显结果。
答案 2 :(得分:1)
你想要使用JSON!
<强>客户端:强>
jQuery.post(url, data, function( data ) {
//Data is already converted from JSON
}, "json");
服务器侧强>
return json_encode($stack);
希望这有帮助!
答案 3 :(得分:0)
echo json_encode($stack);
可以帮助您
在jquery方面使用jQuery.parseJSON()
答案 4 :(得分:0)
您需要将数组转换为JSON对象,如下所示:return json_encode($stack);
答案 5 :(得分:0)
只需将您的数组转换为JSON对象并将其返回给您的JavaScript:
return json_encode($stack);
答案 6 :(得分:0)
正如其他人所说,你可能希望使用像json:
这样的东西来包装输出echo json_encode($stack);
但是,如果您没有查找具有JSON格式复杂性的输出,则可以使用implode()输出以逗号分隔的列表:
echo implode(',',$stack);