Code Igniter - form_dropdown выбирает правильное значение из базы данных - PullRequest
5 голосов
/ 02 декабря 2010

У меня есть несколько проблем с функцией form_dropdown в CodeIgniter .... Мое приложение состоит из 2 частей, пользователь заходит, вводит форму и отправляет ее .... как только она отправлена, администратор может войти и редактироватьэти лица формируются и затем сохраняются в базе данных.

Итак, чтобы отобразить раскрывающийся список в исходной форме, я использую следующее (все параметры раскрывающегося списка поступают из базы данных)

Модель:

    function get_salaries_dropdown()
{
    $this->db->from($this->table_name);
    $this->db->order_by('id');
    $result = $this->db->get();
    $return = array();
    if($result->num_rows() > 0){
            $return[''] = 'please select';
        foreach($result->result_array() as $row){
            $return[$row['id']] = $row['salaryrange'];
        }
    }
    return $return;
}

Затем в контроллере:

$data['salaries'] = $this->salary_expectation->get_salaries_dropdown();

Затем, наконец, представление:

<?php echo form_dropdown('salaries', $salaries, set_value('salaries', $salaries));  ?>

Этот бит отлично работает при отображении выпадающего списка, заполненного значениямидля выбора пользователем.

Итак, когда пользователь выбирает значение, а затем нажимает сохранить, оно сохраняется в базе данных.

На странице редактирования, которую видит администратор, я использую то же самоекод для отображения выпадающего меню, заполненного опциями, но как мне заставить его автоматически выбирать тот, который был выбран пользователем на начальном этапе?

Cheers,

Ответы [ 5 ]

3 голосов
/ 02 декабря 2010

Согласно документации Codeigniter

Первый параметр будет содержать Название поля, второе параметр будет содержать ассоциативный массив опций и третий Параметр будет содержать значение, которое вы хочу быть выбранным. Вы также можете пройти массив нескольких предметов через третий параметр, и CodeIgniter будет создать множественный выбор для вас.

Ваш контроллер администратора должен иметь что-то вроде

$data['selected'] = $this->salary_expectation->get_salary_selected();

В соответствии с этим представление администратора должно быть таким:

<?php echo form_dropdown('salaries', $salaries, $selected_value);  ?>
1 голос
/ 06 января 2011

одно неприятное решение для выбора элемента <option> из <select>, сгенерированного функцией form_dropdown() функции form_helper, использует отправленный после ввода ввод. Я сделал это, потому что любые решения, которые я нашел, не отображают значение, выбранное пользователем в форме, ни set_selected, ни set_vaule. Ну, в моем контроллере у меня есть:

$countries = $this->country_model->get_dropdown_array(); // The array have something like $countries[COUNTRY_ID] = COUNTRY_NAME
$data['countries']=$countries;

На мой взгляд:

$selected_country = $this->input->post('country');
echo form_dropdown('country',$countries,$selected_country);

и отлично работает !!! :)

0 голосов
/ 07 января 2014

В случае обновления вы передаете соответствующее значение для просмотра, если передаваемая переменная похожа на $ ind_post (из контроллера), тогда напишите этот код как:

<?php echo form_dropdown('salaries', $salaries, $ind_post->salaries,'');  ?>
0 голосов
/ 28 июня 2011

У меня была такая же проблема, но я преодолел эту проблему, используя синтаксис воспламенителя кода.Вот решение.Первый шаг До того, как цикл инициализирует два массива

$options = array();
$select = array();

Затем в цикле напишите эту инструкцию

foreach($result->result_array() as $row)
{
    /////////Your Condition ////////////
    if($row['id'] == $myarray['mycolumn'])
    {            
        $options [$row['id']] = $row['salaryrange'];
        $select = $row['id'] ; 
    }else{
        $options [$row['id']] = $row['salaryrange'];
    }
}

Сейчас

echo form_dropdown('dropdown_name' , $options , $select);

Все работает нормально

0 голосов
/ 02 декабря 2010

Функция form_dropdown имеет третий параметр для выбранной опции.Используйте это так:

<?php echo form_dropdown('piece_type', 
        array(
            'type1' => 'Firts type',
            'type2' => 'Second option'
            $selected_value, 
            'id = "piece_type"') ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...