【发布时间】:2017-05-16 21:27:05
【问题描述】:
我有基于内容的类型的“条件内容”,如下所示:
//--- Here goes a nice SQL where I get the content, this works ok. ---
if(mysqli_num_rows($niceSQL) > 0) {
while($something = mysqli_fetch_array($niceSQL)) {
$type = $something["type"];
if ("type" == "A") {
$data1 = $something["data1"];
$data2 = $something["data2"];
$data3 = $something["data3"];
$something_A = array(
"one" => $data1,
"two" => $data2,
"three" => $data3,
);
echo json_encode($something_A, JSON_FORCE_OBJECT);
} else if ("type" == "B") {
$data1 = $something["data1"];
$data2 = $something["data2"];
$data3 = $something["data3"];
$something_B = array(
"one" => $data1,
"two" => $data2,
"three" => $data3,
);
echo json_encode($something_B, JSON_FORCE_OBJECT);
}
}
}
我正在尝试将每个数组转储为 JSON,以便使用 jQuery Each 处理它。
问题是所有的东西同时被“打印”(回显),所以 AJAX 响应是“parsererror”。我以这种方式收到此错误:
(ajax and config here).fail(function( jqXHR, textStatus ) {
console.log( "Request failed: " + textStatus );
})
那么,我怎样才能单独打印每个 $something_A 或 $something_B 但一起打印? Together 意味着只有一个 ajax 请求,所以我可以用 jQuery Each 处理内容。
如果我只打印第一个$something_A 或第一个$something_B,那么我可以执行“每个”循环(这就是我假设PHP“json_encode”函数正常工作的原因),但这对我没有用(因为我只收到了许多“东西”中的第一个)。
注意:我可以更改转储的逻辑,而不是获取内容的方式(SQL + while)。
【问题讨论】:
-
收集数组中的所有值并对其进行编码。
-
这会产生一个数组,其中包含 n 个数组。
-
是的,你需要什么?
-
我需要 n 数组来分别用 jQuery 处理它们。我已经在 JS 控制台中转储了所有内容,我得到了类似这样的内容:具有 2 个值的数组,具有 3 个值的数组,具有 4 个值的数组.. 所有这些都在一个数组 (
$master_dump_array) 中,我在其中$master_dump_array[] = $something_X;跨度> -
n 个数组必须以某种方式分组。否则,您根本无法与他们合作。在 javascript 数组中可以使用简单的
for循环进行迭代。
标签: php jquery arrays json ajax