我有一个工作表单,我想将输入字段转换为使用 HTML5 数据列表,以便它们自动完成,我在网上尝试了各种示例,但由于某种原因我没有让它工作。
我还应该补充一点,数据以从 api 返回的 json 文件开始,我将其转换为数组,如果有更好的方法从 json 数据开始,可能会很重要。
任何帮助将不胜感激。
谢谢
戈登
旧工作代码
<select name="group[]">
<option value=""></option>
<?php
foreach ($groups as $group) {
?>
<option value="
<?php echo $group["name"];?>">
<?php echo $group["name"];?>
</option>
<?php
}
?>
</select>
新代码的最新尝试
<input type="text" id="groups" list="groups" />
<datalist id="groups">
<?php foreach ($groups as $group) {
echo "<option value=" . $group['name'] . "</option>" ;
}
?>
</datalist>
解决方案,睡在上面后想通了! 希望对别人有帮助
<input type="text" id="groups" list="group" id="grp"/>
<datalist id="group">
<?php foreach ($groups as $group) { ?>
<option value="<?php echo $group['name']; ?>">
<?php echo $group['name']; ?></option>
<?php } ?>
</datalist>
为什么您的输入标签和数据列表标签具有相同的 id?此外,您还需要添加一个提交按钮。另外,正如我所看到的,您的代码有一个错误
echo "<option value=" . $group['name'] . "</option>" ;
应该是,
echo "<option value=" . $group['name'] . "></option>" ;
^ closing tag. Missing here
标签未关闭。
链接到一个小的工作示例小提琴 - https://jsfiddle.net/s3864qxy/1/
<input list="browsers" name="browser">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
<input type="submit">
希望对您有所帮助!