Мне нужно заполнить раскрывающийся список из каталога, для которого я использую:
$dir = 'public/files/';
$files = scandir ($dir);
echo form_dropdown('myid', $files);
Работает нормально, но как я могу получить выбранный пункт из меню?
Я пытался с помощью:
$selected=$this->input->post('myid');
Но это не работает. Пожалуйста, помогите. Спасибо.
Сначала получите значение выпадающего через jQuery
var selected = $('[name="myid"] option:selected')
Тогда поместите это в скрытый текст. Чтобы получить почтовую стоимость этого.
попробуй это..
$dir = 'public/files/';
$files = scandir ($dir);
$selected=$this->input->post('myid');
//add selected to the function
echo form_dropdown('myid', $files, $selected);
Я не уверен, что это сработает, потому что scandir()
производит числовой массив в то время как form_dropdown
требует ассоциативный массив согласно документации:
$options = array(
'small' => 'Small Shirt',
'med' => 'Medium Shirt',
'large' => 'Large Shirt',
'xlarge' => 'Extra Large Shirt',
);
Возможно, вам придется перебирать ваш $files
массив, чтобы преобразовать его в ассоциативный массив и убедиться, что ключи установлены на правильные значения.
Это должно работать:
$dir = 'public/files/';
$files = scandir ($dir);
foreach($files as $file){
$array_files[$file] = $file;
}
echo form_dropdown('myid', $array_files);
По сути, он создает ассоциативный массив и передает его в раскрывающийся список. Надеюсь, поможет