【发布时间】:2013-10-02 22:31:17
【问题描述】:
基本上我想要做的是返回 mysql 查询的结果。我知道如何将查询结果的每一行放入它自己的 JSON 对象中,现在我只是在努力寻找一种方法,以便如果有多行结果将其返回给我的 jquery。 在我的 jquery 中,我调用了 $.ajax() 函数,对此我没有任何问题。我的问题在于成功部分,我希望能够执行以下操作:
$.ajax ({
type: "POST",
url:"select.php",
data: {columns : "*",
table : "tbUsers",
conditions : "" },
success: function(results) {
foreach (results as obj)
{
JSON.parse(obj);
$("#page").html(obj.id + " " + obj.name);
}
}
});
我希望能够像 JSON 对象数组一样遍历结果变量。 results 变量是一个字符串,由 php 文件的所有输出组成。所以让我的问题而不是,我怎样才能改变它,以便函数得到一个数组,或者我如何把它变成一个数组?
我的 php 文件目前返回如下内容:
[{"0":1, "1":"name1", "id":1, "name":"name1"} , {"0":2, "1":"name2", "id":2, "name":"name2"}]
【问题讨论】:
-
您将使用 PHP json_encode 函数创建一个 JSON 字符串,并将其发送回 jQuery,如果您将 dataType 设置为 JSON,它将自动为您解析字符串为 javascript 对象!
-
JSON.parse(obj);应该退出循环,成功的问题是什么? -
JavaScript 没有
foreach循环。 -
为什么不只发送一个大的 json 字符串而不是多个较小的字符串?
-
但无论如何指定它并没有什么坏处。如果有的话,它可以避免没有副作用的问题。通过指定它,如果你的 php 失败并且什么也不返回,它会将你的 ajax 发送到错误回调而不是成功的字符串结果。
标签: php jquery mysql ajax json