首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PHP数组变量转换为JS

将PHP数组变量转换为JS
EN

Stack Overflow用户
提问于 2022-07-05 10:29:02
回答 1查看 25关注 0票数 0

我正在尝试实现一种新的方法,让用户使用Slim Select JS库将数据输入到HTML中。

我有基本的功能,有一个预先填充的<option>项目列表。

最初,PHP代码将从数据库(现在在MongoDB中)获取名称列表,然后在创建<select>元素时将其循环起来。

使用Slim Select,您可以传入一个“数据数组”作为JS脚本的参数。手动创建的格式如下:

代码语言:javascript
复制
var jsPlayers2 = [
    {"placeholder": true, "text": "Type Name"},
    {"text": "Ernie Els", "value": "abc1"},
    {"text": "Rory McIlroy", "value": "abc2"},
    {"text": "Tiger Woods", "value": "abc3"}
];
        
new SlimSelect({
    select: '#slim-select',
    data: jsPlayers2, // THIS WOULD BE REPOINTED TO THE JSPLAYERS ARRAY VAR...
    
    onChange: (info) => {
        console.log(info)
    }
})

当前返回的MongoDB文档结构是:

代码语言:javascript
复制
var jsPlayers = [{
        "_id": {
            "$oid": "62b49410e63c2f8469089189"
        },
        "name": "Tiger Woods",
        "clubs": [{
            "clubId": {
                "$oid": "6076030465508936f00e086c"
            },
            "name": "Jupiter FL",
            "nickName": "Jupiter",
            "logoPath": "jupiter.png"
        }]
    }, {
        "_id": {
            "$oid": "609d0993906429612483cfb1"
        },
        "name": "Ernie Els",
        "clubs": [{
            "clubId": {
                "$oid": "6076030465508936f00e086c"
            },
            "name": "Wentworth UK",
            "nickName": "Wentworth",
            "logoPath": "wentworth.png"
        }]
    }, ...
}];

我已经将这个变量的echo简化为一个新的JS变量:

代码语言:javascript
复制
var jsPlayers = <?php echo json_encode($players); ?>;

如何才能从每个文档中选择我需要的字段?或者,当我将数组元素添加到slim-select.data属性时,是否存在过滤它们的方法?

EN

回答 1

Stack Overflow用户

发布于 2022-07-05 10:51:51

您需要循环遍历播放机,以创建要以JSON形式输出的数组。就像这样:

代码语言:javascript
复制
$options = [];
foreach ($players as $player) {
    $options[] = (object)["text"  => $player->name,
                          "value" => $player->getId()];
}
echo json_encode($options);

这只会输出JSON。

请注意,我使用了$player->getId(),这可能对您不起作用。如果玩家是真正的对象,那么您可以自己定义一个方法来获取他们的id。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72867886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档