首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在脚本中显示分类wordpress

在脚本中显示分类wordpress
EN

Stack Overflow用户
提问于 2020-10-13 18:45:51
回答 2查看 37关注 0票数 1

我没有太多使用javascript的经验,我需要一些帮助,我已经实现了一个自动补全输入:

代码语言:javascript
运行
复制
<input type="text" name="searchField"  id="form-autocomplete" class="form-control mdb-autocomplete">

下面是它返回的值​​:

代码语言:javascript
运行
复制
<script>
    var states = [
        "Alabama",
        "Alaska",
        "Arizona",
        "Arkansas",
        "California",
        "Colorado",
        "Connecticut",
        "Delaware",
        "Florida",
        "Georgia",
        "Hawaii",
        "Idaho",
        "Illnois",
        "Indiana",
        "Iowa",
        "Kansas",
        "Kentucky",
        "Louisiana",
        "Maine",
        "Maryland",
        "Massachusetts",
        "Michigan",
        "Minnesota",
        "Mississippi",
        "Missouri",
        "Montana",
        "Nebraska",
        "Nevada",
        "New Hampshire",
        "New Jersey",
        "New Mexico",
        "New York",
        "North Carolina",
        "North Dakota",
        "Ohio",
        "Oklahoma",
        "Oregon",
        "Pennsylvania",
        "Rhode Island",
        "South Carolina",
        "South Dakota",
        "Tennessee",
        "Texas",
        "Utah",
        "Vermont",
        "Virginia",
        "Washington",
        "West Virginia",
        "Wisconsin",
        "Wyoming"
    ];

    $('#form-autocomplete').mdbAutocomplete({
        data: states
    });
</script>

现在我的目标是将这些脚本值​​替换为我通过php获得的分类列表:

代码语言:javascript
运行
复制
<?php
$terms = get_terms('categoria', $args );
foreach( $terms as $term ){
    echo '<p>' . $term->name . '</p>&nbsp;';
}
?>

问题是如何将我的分类法作为脚本值插入?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-13 18:56:40

代码语言:javascript
运行
复制
<script>
var states = <?php
    echo json_encode(
        array_map(
            function($term){ return $term->name; },
            get_terms('categoria', $args )
        )
    );
?>;
states.length||(states=[]);
$('#form-autocomplete').mdbAutocomplete({
    data: states
});
</script>

如果这看起来令人困惑,下面的代码可以做同样的事情:

代码语言:javascript
运行
复制
<script>
var states = <?php
    $terms = get_terms('categoria', $args );
    $term_names = [];
    foreach( $terms as $term ){
        $term_names[] = $term->name;
    }
    echo json_encode( $term_names );
?>;
states.length||(states=[]);
$('#form-autocomplete').mdbAutocomplete({
    data: states
});
</script>

说明:整个<?php ... ?>代码块打印一个JSON,它是一个可以赋值的有效javascript对象,因此html中的<?php ... ?>将变为["Alabama","Alaska", ...]

由于php的行为,将空数组打印为JSON将导致输出{}而不是[]

票数 0
EN

Stack Overflow用户

发布于 2020-10-13 19:11:09

在此库中试用此代码

如下所示更改HTML

代码语言:javascript
运行
复制
<input type="text" name="searchField"  id="form-autocomplete" class="form-control">

如下所示更改JS

代码语言:javascript
运行
复制
$( "#form-autocomplete" ).autocomplete({
     source: states
});

添加以下脚本和CSS文件

代码语言:javascript
运行
复制
https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.2.1/proj4.js
https://openlayers.org/en/v3.20.1/css/ol.css
https://openlayers.org/en/v3.20.1/build/ol.js
https://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css

谢谢。

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

https://stackoverflow.com/questions/64333714

复制
相关文章

相似问题

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