1

我试图从 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;

问题是我无法正确返回它,如果我“echo $stack”它不起作用它说我试图将数组转换为字符串。如果我“回显 $stack[0]”,它将正确地给我数组中的第一个结果,所以我知道这些值被正确存储(如 $stack[1] 等),但这只会发回一个值. 如果我如图所示“返回 $stack”,则不会发出任何警报,因为没有回显。我将如何去取回整个数组,以便我可以遍历并在 jquery 端使用它们?

4

7 回答 7

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 输出。

于 2013-10-15T20:54:59.503 回答
1

您需要以一种可以通过 HTTP 传输到客户端并用于获取原始数据的方式包装(序列化)数据。通常的容器格式是 XML 和 JSON。JSON 非常适合在 JavaScript 中使用,因此请使用 PHP 函数 json_encode() 并回显结果。

于 2013-10-15T20:55:03.787 回答
1

你会想要使用 JSON!

客户端:

jQuery.post(url, data, function( data ) {
    //Data is already converted from JSON
}, "json");

服务器端:

return json_encode($stack);

解释

希望这可以帮助!

于 2013-10-15T20:58:56.870 回答
0

echo json_encode($stack);能帮你

在 jquery 端使用jQuery.parseJSON()

于 2013-10-15T20:54:30.653 回答
0

您需要将数组转换为 JSON 对象,如下所示:return json_encode($stack);

于 2013-10-15T20:55:03.407 回答
0

只需将您的数组转换为 JSON 对象并将其返回给您的 JavaScript:

return json_encode($stack);
于 2013-10-15T20:55:09.810 回答
0

正如其他人所说,您可能希望使用 json 之类的东西来包装输出:

echo json_encode($stack);

但是,如果您不是在寻找具有 JSON 格式复杂性的输出,您可以只使用implode()来输出一个逗号分隔的列表:

echo implode(',',$stack);
于 2013-10-15T20:59:25.837 回答