2016-02-06 3 views
0

Я конфиг страница Я создаю в 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; 
} 

?> 

Теперь это прекрасно работает для «выбора изображения для САБ» и когда страница загружается, считывает значение в $ 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

где вы называете ' dropdown_sick'? Код, который вы предоставляете, вызывает функцию 'drop down'? –

+0

Почему бы не передать его в качестве параметра, а просто иметь одну рутину? –

+0

Im совершенно новый для php, поэтому я не слишком уверен, как это сделать? – Karl

ответ

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; 
} 

?> 

Спасибо Райан

Смежные вопросы