在php中回显/返回一个数组

时间:2013-10-15 20:52:22

标签: php jquery mysql post

我试图从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端使用它们?

7 个答案:

答案 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);

Explanation

希望这有帮助!

答案 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);