【问题标题】:Populate HTML dropdown from text file从文本文件填充 HTML 下拉列表
【发布时间】:2016-10-15 12:34:06
【问题描述】:

我有一个包含硬编码值的下拉菜单:

<select name="value" id="value">
  <option value="A">A</option>
  <option value="B">B</option>
  <option value="C">C</option>
  <option value="D">D</option>
</select>

我想加载一个文本文件来填充这些值。文本文件将在新行中包含每个值。

值.txt

A
B
C
D

我试过了:

<select>
    <?php
    if ($file = @fopen('values.txt', 'r')) {
        while(($line = fgets($file)) !== false) {
            echo "<option>{$line}</option>";
        }
        fclose($file);
    }
?>
</select>

但是当我这样做时,下拉菜单上没有选择。

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 您可能没有读取该文件的权限。我复制并粘贴了您的代码,它工作正常。如果您使用的是 unix 系统,则可以使用 sudo chmod 744 values.txt
  • 去掉@ fopen,这样你就可以看到错误了。仅使用fopen()
  • @ksealey 我在 Windows 7 上运行。稍后在程序中,我有 javascript 代码可以很好地读取 .csv 文件,所以我不认为这可能是权限问题。不过,感谢您的建议。
  • @Rohit 我去掉了@,但没有发现任何错误。

标签: javascript php html select drop-down-menu


【解决方案1】:

可以创建列表的数组元素

$filename = 'values.txt';
$eachlines = file($filename, FILE_IGNORE_NEW_LINES);//create an array
echo '<select name="value" id="value">';
foreach($eachlines as $lines){
    echo "<option>{$lines}</option>";
}
echo '</select>';

【讨论】:

  • 我刚刚尝试了您的代码,但下拉菜单仍然没有填充任何内容... :(
  • @CdSdw 给出文件名的完整路径。
  • 大括号语法不适用于单引号。
  • @Midas 非常感谢 CdSdw 的单引号
  • 嗯,我认为这可能是我在 HTML 方面的新手,但是当我使用 &lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;body&gt;(your code)&lt;/body&gt;&lt;/html&gt; 创建一个新的 HTML 文件时,打开 HTML 文件时屏幕上唯一显示的是文字文字"; foreach($eachlines as $lines){ echo "{$lines}"; } echo ""; ?&gt;...我不确定为什么回声会按字面意思显示。为了安全起见,我把所有的单引号都改成了双引号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多