繁体   English   中英

PHP对象数组为javascript变量

[英]PHP object array to javascript variable

我需要将一个php对象数组转换为一个javascript变量,以便在'easyautocomplete'插件中使用它。 这是我想要实现的目标的简要说明:

从数据库返回的PHP对象的var_dump:

array(223) {
  [0]=>
  object(stdClass)#5 (9) {
    ["id"]=>
    string(2) "10"
    ["no"]=>
    string(3) "CN1"
    ["name"]=>
    string(10) "Cyclops"
  }
  [1]=>
  object(stdClass)#6 (9) {
    ["id"]=>
    string(2) "11"
    ["no"]=>
    string(3) "CN2"
    ["name"]=>
    string(11) "Professor X"
  }
  ..
  ..

必需的javascript格式:

var characters = {

    data: [
        {"name": "Cyclops", "id": 1},
        {"name": "Professor X", "id": 2}
        ],

    getValue: "name",

    list: {

        onSelectItemEvent: function() {

            var value = $("#character1").getSelectedItemData().id;

            $("#character").val(value).trigger("change");
        }
    }
};

我尝试了什么:

var characters = <?php echo json_encode(['data' => $chars]); ?>;

结果:

var characters = {

    "data": [
    {"id":"10","no":"CN1","name":"Cyclops"},
    {"id":"11","no":"CN2","name":"Professor X"}

]};

似乎我几乎得到了我需要的结果,但我不知道如何从getValue : "name" list: { .....开始追加剩余的属性getValue : "name" list: { ..... to the character variable。

此外,似乎结果变量在“数据”属性周围有双引号,但我不确定这是否会导致问题。

链接到我试图实现的示例: 链接

客户端行为应该在客户端,不需要向data附加任何内容,只需提供所需的数据集,所有其他字段都可以在js中定义:

var characters = {
    data: <?=json_encode($chars)?>,
    getValue: "name",
    list: {
        onSelectItemEvent: function() {
            var value = $("#character1").getSelectedItemData().id;
            $("#character").val(value).trigger("change");
        }
    }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM