Как отобразить ранее выбранное выпадающее значение в codeigniter?

0

Этот код хорошо работает с точки зрения добавления новой записи в эту раскрывающуюся категорию. Моя проблема заключается в том, что для параметра 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>

Я с нетерпением жду любой помощи.

Хорошего дня! :)

Теги:
codeigniter
echo
edit

2 ответа

0

в 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);?>
}
}
0

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>';
?>
  • 0
    Привет @Davor. Спасибо за ваш ответ. Я пытался написать это: <? Php echo form_dropdown ('category_id', $ options, $ _POST ['category_id']);?> Но я получил сообщение о том, что category_id - это неопределенный индекс ..
  • 0
    Да, потому что $ _POST является нативным PHP, поэтому, если пользователь не отправил форму, она не установлена. Вот почему я использую эквивалентный коду $ this-> input-> post, который равен FALSE, если он не существует, и значение post, если форма была отправлена. Использование $ this-> input-> post ('category_id')! == false? $ this-> input-> post ('category_id'): 1 вы сможете отобразить опцию по умолчанию (здесь 1) при загрузке страницы и то, что пользователь ввел после отправки формы.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню