我没有太多使用javascript的经验,我需要一些帮助,我已经实现了一个自动补全输入:
<input type="text" name="searchField" id="form-autocomplete" class="form-control mdb-autocomplete">下面是它返回的值:
<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获得的分类列表:
<?php
$terms = get_terms('categoria', $args );
foreach( $terms as $term ){
echo '<p>' . $term->name . '</p> ';
}
?>问题是如何将我的分类法作为脚本值插入?
发布于 2020-10-13 18:56:40
<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>如果这看起来令人困惑,下面的代码可以做同样的事情:
<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将导致输出{}而不是[]
发布于 2020-10-13 19:11:09
在此库中试用此代码
如下所示更改HTML
<input type="text" name="searchField" id="form-autocomplete" class="form-control">如下所示更改JS
$( "#form-autocomplete" ).autocomplete({
source: states
});添加以下脚本和CSS文件
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谢谢。
https://stackoverflow.com/questions/64333714
复制相似问题