为什么我不能有重复的工作功能?

时间:2016-02-06 10:06:46

标签: php

我有一个用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,它不起作用,所以我显然错过了一些东西..

希望有人可以对我做错的事情发表一些看法。

1 个答案:

答案 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