【问题标题】:php json data not workingphp json数据不起作用
【发布时间】:2015-11-13 09:12:57
【问题描述】:

我使用 php 创建了一个数组,然后我对它进行了 json 编码

$json_array =  json_encode($newarray);

在我的 jquery 中,编码的数组似乎可以形成(我认为??)但是当我尝试使用 json 数据时 - 没有任何反应?我期待文本框自动完成。

有趣的是 - 如果我使用 arraytxt2,但不是 arraytxt1(通过 json_encode 创建的那个),它可以工作。

关于为什么 arraytxt1 不起作用的任何想法?提前致谢。

$(document).ready(function () {
    var arraytxt1 = [{
        "equipmentid": "1",
        "equipmentmake": "Baxi"
    }, {
        "equipmentid": "2",
        "equipmentmake": "Baxi"
    }];

    var arraytxt2 = [{
        "id": "1",
        "label": "aa"
    }, {
        "id": "2",
        "label": "bb"
    }, {
        "id": "3",
        "label": "bbbb"
    }, {
        "id": "4",
        "label": "abab"
    }, {
        "id": "5",
        "label": "cab"
    }];

    $("#txt1").autocomplete({
        source: arraytxt1,
        minLength: 1,
        select: function (event, ui) {
            $("#txt2").val(ui.item.equipmentid);
        }
    });
});

【问题讨论】:

  • 请花时间正确格式化您的代码。它使您和其他人更容易理解。
  • arraytxt1 和 arraytxt2 都是有效的 JSON (jsonlint.com)。您未提供的代码中一定有问题。您是否在开发者控制台中看到任何错误,或者 #txt2 的值没有更新?
  • 这段代码中arraytxt1的数据只是举例吗?或者你是在 javascript 中从 php 中获取 json 数据吗?如果是后者,那么您可能需要将 JSON 字符串转换为您在此处拥有的数组格式。
  • 对不起@Rory McCrossan 第一次发帖,只是复制并粘贴了代码。道歉。
  • 嗨@spaniol6 是的,第二个数组只是为了测试。第一个数组中的字段通过 php 来自数据库,然后进行编码。感谢您的输入。欣赏它。克里斯

标签: php jquery json


【解决方案1】:

自动完成数组对象的正确键是labelvalue。您的情况可能不需要 value 属性。

https://api.jqueryui.com/autocomplete/#option-source

试试:

var arraytxt1 = [{
    "equipmentid": "1",
    "label": "Baxi"
}, {
    "equipmentid": "2",
    "label": "Baxi"
}];

【讨论】:

  • 感谢@toster-cx 值和标签标签是通过 php 来自数据库并编码的。我将尝试更改第二个数组以进行测试,看看我是否仍然可以让它工作?确实感谢您的意见。克里斯
  • 整理好了!谢谢@toster-cx,你让我走上了正确的轨道。我已将数组更改为 id 和标签。感谢所有帮助过的人。赞赏
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
  • 2012-04-16
  • 2015-06-21
  • 2015-11-26
相关资源
最近更新 更多