我有一个用PHP创建的配置页面,我使用了一些代码来创建文件夹中找到的文件的下拉列表
<?php
$folder = '../Pic/Upload';
echo '<select name="sabpic">'."\n".
dropdown(image_filenames($folder), @$_POST['image']).
'</select>'."\n".'</br></br>';
function image_filenames($dir)
{
$handle = @opendir($dir)
or die("I cannot open the directory '<b>$dir</b>' for reading.");
$images = array();
while (false !== ($file = readdir($handle)))
{
if (eregi('\.(jpg|gif|png)$', $file))
{
$images[] = $file;
}
}
closedir($handle);
return $images;
}
function dropdown($options_array, $selected = null)
{
global $sabpicname;
$return = null;
foreach($options_array as $option)
{
$return .= '<option value="'.$option.'"'.
(($option == $sabpicname) ? ' selected="selected"' : null ).
'>'.$option.'</option>'."\n";
}
return $return;
}
?>
现在这适用于“为SAB选择图片”,并且在加载页面时读取$ sabpicname中的值并选择该选项作为预期的默认值。
我假设我可以使用相同的函数并将$ sabpicname修改为$ sickpicname,它会工作相同但是选择变量中包含的值而不是..
<?php
echo '<select name="sickpic">'."\n".
dropdown(image_filenames($folder), @$_POST['image2']).
'</select>'."\n".'</br></br>';
function dropdown_sick($options_array, $selected = null)
{
global $sickpicname;
$return2 = null;
foreach($options_array as $option2)
{
$return2 .= '<option value="'.$option2.'"'.
(($option2 == $sickpicname) ? ' selected="selected"' : null ).
'>'.$option2.'</option>'."\n";
}
return $return2;
}
?>
但无论我做什么,第二个下拉列表仍然采用存储在$ sabpicname而不是$ sickpicname中的选定值,但从我所看到的,它现在是一个单独的函数,并没有引用$ sabpicname变量atall,它不起作用,所以我显然错过了一些东西..
希望有人可以对我做错的事情发表一些看法。
答案 0 :(得分:0)
愚蠢的我,我现在可以看到你说我还在调用orignal下拉,我知道它必须是愚蠢的东西..
<?php
echo '<select name="sickpic">'."\n".
dropdown_sick(image_filenames($folder), @$_POST['image2']).
'</select>'."\n".'</br></br>';
function dropdown_sick($options_array, $selected = null)
{
global $sickpicname;
$return2 = null;
foreach($options_array as $option2)
{
$return2 .= '<option value="'.$option2.'"'.
(($option2 == $sickpicname) ? ' selected="selected"' : null ).
'>'.$option2.'</option>'."\n";
}
return $return2;
}
?>
谢谢Ryan