Populate下拉列表显示为空

时间:2015-03-09 00:27:41

标签: php

我感谢大家给予我的帮助。我现在的下拉框似乎在变化,但它是空白的。我正在使用的当前编码编辑如下:

<input type="hidden" name="Action" value="EDIT" /><input type="hidden" name="Selection"  id="Selection" value="-1"><div>Below is the list of your saved codes. To edit your codes, select it from the list.</div>
<select> 
<?php 
$directory = realpath(dirname(FILE)) . '/../users/' . $_SESSION['username']; 

$files = scandir( $directory ) ;

foreach( $files as $file )
{
if ( ! is_dir( $file ) )
{
    echo "<option>" . $file . "</option>";
}
}
?>
</select>

当我检查页面上的空下拉元素时,我得到了这个:

警告:scandir(/ home / revo / public_html / evo /../ users / Addiction)[function.scandir]:无法打开dir:/ home / revo / public_html / evo / codesaveindex中没有这样的文件或目录第117行的.php

警告:scandir()[function.scandir] :(错误2):第117行/home/revo/public_html/evo/codesaveindex.php中没有此类文件或目录

警告:在第119行的/home/revo/public_html/evo/codesaveindex.php中为foreach()提供的参数无效

3 个答案:

答案 0 :(得分:1)

您的问题是您输出了<select>标记,然后开始构建带有连接的php变量$Selection(这是错误的,因为您在连接之前从未初始化变量)。

看看是否有效:

<input type="hidden" name="Action" value="EDIT" /><input type="hidden" name="Selection"  id="Selection" value="-1"><div>Below is the list of your saved codes. To edit your codes, select it from the list.</div>
<?php

// match all files that have .txt extension
$file_matcher = realpath(dirname(__FILE__)) . '/../users/' . $_SESSION['username'] . '/*.{txt}';

//Initialize variable $Selection
$Selection = '<select size="1" name="CodeList" id="CodeList" onchange="CodeChange();"><option value="0">(Add New Code)</option>';

foreach( glob($file_matcher, GLOB_BRACE) as $file ) {
    $file_name = basename($file);
    //Concatenate variable $Selection
    $Selection .= "<option value='$file'>$file_name</option>\n";
}

//Finish HTML source concatenation on $Selection
$Selection .= '</select>';

//Output the HTML
echo $Selection;
?>

答案 1 :(得分:0)

我认为这应该可以用您希望的路径替换 DIR

<select> 
<?php

$directory = __DIR__;

$files = scandir( $directory ) ;

foreach( $files as $file )
{
    if ( ! is_dir( $file ) )
    {
        echo "<option>" . $file . "</option>";
    }
}
?>

</select>

答案 2 :(得分:0)

你的目录路径有点复杂。

$file_matcher = realpath(dirname(__FILE__)) . '/../users/' . $_SESSION['username'] . '/*.{txt}';

如果目录无效,您将找不到任何文件,并且没有填充的选择。

为了测试,尝试一个简单的目录 - 没有任何变量 - 并查看它是否有效。我敢打赌,在Niloct的帮助之后,它会。 +1到Niloct。