Javascript 从文本文件填充HTML下拉列表

Javascript 从文本文件填充HTML下拉列表,javascript,php,html,select,drop-down-menu,Javascript,Php,Html,Select,Drop Down Menu,我有一个带有硬编码值的下拉菜单: <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> 我试过这个

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

<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>
我试过这个:

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

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


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

您可以创建列表的数组元素

$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>';
$filename='values.txt';
$eachlines=file($filename,file\u IGNORE\u NEW\u行)//创建一个数组
回声';
foreach($eachline作为$line){
回显“{$lines}”;
}
回声';

您可能没有读取该文件的权限。我复制并粘贴了你的代码,效果很好。如果您在unix系统上,您可以执行
sudo chmod 744 values.txt
删除@fopen,这样您就可以看到任何错误。仅使用
fopen()
@ksealey我正在Windows 7上运行。稍后在程序中,我有javascript代码可以读取.csv文件,所以我不认为这可能是权限问题。不过,谢谢你的建议。@Rohit我去掉了
@
,但没有发现任何错误。我刚才尝试了你的代码,但下拉菜单中仍然没有填充任何内容…:(@CdSdw给出了文件名的完整路径。花括号语法不适用于单引号。@迈达斯非常感谢CdSdw提供的单引号。我想这可能是我在HTML方面的新手,但当我用
(您的代码)创建新的HTML文件时
,当我打开HTML文件时,屏幕上显示的唯一内容是文本
“foreach($eachlines as$lines){echo“{$lines}”}echo”“;?>
…我不确定为什么会按字面显示回显。为了安全起见,我将所有单引号改为双引号。
$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>';