Этот код хорошо работает с точки зрения добавления новой записи в эту раскрывающуюся категорию. Моя проблема заключается в том, что для параметра Option1 задано значение по умолчанию, чтобы убедиться, что выпадающее меню не осталось без ответа. Мой вопрос в том, как я эхо ранее сохраненное значение для категории выпадающего списка? Я должен правильно отобразить его, чтобы правильно редактировать функцию редактирования.
<tr>
<span style="font-size: 10pt" class="label label-info">Category</span><br/>
<? $options = array
(
'1' => 'Option1',
'2' => 'Option2',
'3' => 'Option3',
'4' => 'Option4',
); ?>
<?php echo form_dropdown('category_id', $options, 'Option1');?>
</tr>
Я с нетерпением жду любой помощи.
Хорошего дня! :)
в ref из вашего вопроса: Редактировать форму эхо ранее сохраненных данных правильно, но не обновляет поля формы
<?php
foreach($model as $row)
{
if($row="" )
{
$selected_category_id = '';
$options = array
(
'1' => 'Option1',
'2' => 'Option2',
'3' => 'Option3',
'4' => 'Option4',
); ?>
<?php echo form_dropdown('category_id', $options, $selected_category_id);?>
}
else
{
$selected_category_id = '$row->(database column name where vale is stored)';
$options = array
(
'1' => 'Option1',
'2' => 'Option2',
'3' => 'Option3',
'4' => 'Option4',
); ?>
<?php echo form_dropdown('category_id', $options, $selected_category_id);?>
}
}
EDIT: это работает (кстати, есть хорошие классы для обработки форм с помощью codeigniter там, где вам не нужно использовать весь этот код для каждого поля и управлять правилами проверки и т.д. Гораздо более гибким способом - поддерживать вид и контроллер очень просты и перемещают большую часть его в модели).
<?php $model = array(
array('value' => '1', 'display' => 'Option1'),
array('value' => '2', 'display' => 'Option2'),
array('value' => '3', 'display' => 'Option3'));
echo '<select name="category_id">';
foreach($model as $i) echo '<option '.($this->input->post('category_id') === $i['value'] ? 'selected="selected"' : '').' value="'.$i['value'].'">'.$i['display'].'</option>';
echo '</select>';
?>