将表单输入字段内容转换为 HTML5 数据列表


Convert form input field contents to HTML5 datalist

我有一个工作表单,我想将输入字段转换为使用 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">

希望对您有所帮助!