gpt4 book ai didi

php - PHP 的 json 返回多个数组

转载 作者:行者123 更新时间:2023-12-01 04:50:31 25 4
gpt4 key购买 nike

首先,我正在构建一个运行 Ajax 的完整 CRM,其中涉及很多内容,因此请耐心阅读整个内容。

我有一个 ajax 脚本返回几个 json 数组。当我显示 php 脚本的返回值时,我得到:

[{"packages":{"id":"1","name":"Land Line"}},{"packages":{"id":"2","name":"Cellular w\/Alarm.com"}},{"packages":{"id":"3","name":"Home Automation"}}]

我想做的是分离数组,这样我就可以从中进行选择下拉。在有人说任何话之前,是的,我自己知道如何做到这一点,但我需要这个脚本填充的表单是一个选择下拉列表或一个基于进入另一个脚本的 id 的完整填写的表单。这有点令人困惑,所以请不要为此困扰我。

这是 PHP 脚本 league_form.php:

    $equip = "SELECT * FROM packages WHERE brand='$brand'";
if($db->query($equip) === false) {
trigger_error('Wrong SQL: ' . $query . ' Error: ' . $db->error, E_USER_ERROR);
} else {
$result = $db->query($equip);
$array = array();
foreach($result as $r) {
$array[] = array(
"packages" => array(
"id" => $r['id'],
"name" => $r['name']
)
);
}
echo json_encode($array);
}

这是jquery进入PHP表单并返回输入信息:

$.ajax({
type: "POST",
url: "/crm/alliance_form.php",
data: dataString,
success: function(msg)
{
$("#package-form").html(msg);
$.each(msg.packages, function(i, object) {
$.each(object, function(index, value) {
alert(value);
});
});

},
error: function(error)
{
$(".error").html(error);
}
});

这是 CRM 订购系统的一部分,因此该脚本将检查数据库中 id 下的现有订单。如果 id 在那里,那么它应该与订单信息一起返回,然后我填充表单。如果没有,它将提供一个选择下拉菜单来选择一个包,然后填充一个空表单。这就是我现在的要点。

问题是:为什么我不能从 JQuery 的each() 循环上得到响应。一个返回值返回的是一个常规数组,而这个是一个嵌套数组。

最佳答案

我不太清楚你在问什么,但以下是我的想法:

您的.packages放在了错误的位置。而不是这个:

$.each(msg.packages, function(i, object)    {
$.each(object, function(index, value) {
...

你应该这样写:

$.each(msg, function(i, object)    {
$.each(object.packages, function(index, value) {
...

更好的是,您可以完全摆脱。这是 JSON 结构中不必要的级别。

另外,我认为 jQuery 不知道响应是 JSON。为此,您需要在 $.ajax 的参数列表中添加 dataType: 'json',或者在服务器上使用某些内容来适当设置 MIME 类型。

我还担心 $("#package-form").html(msg);,因为 msg 不是 HTML 字符串。

关于php - PHP 的 json 返回多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20694081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com