Избавление от optgroup и получение реального значения при использовании массива в form_dropdown в codeigniter - PullRequest
0 голосов
/ 08 мая 2018

У меня проблема с form_dropdown в codeigniter:

Вот моя форма:

ee()->load->helper('form');

        $sql = ee()->db->select('*')->from('exp_credit_tracker_credit_type')->get();

        $credit_type = array();

        foreach ($sql->result() as $row) {
            array_push($credit_type, $row->credit_name);
        }

        $data['credit_type'] = form_dropdown('credit_type', array($credit_type));

Вывод, по некоторым причинам, следующий:

<select name="credit_type">
<optgroup label="0">
<option value="0" selected="selected">HOURS</option>
<option value="1">CREDITS</option>
</optgroup>
</select>

Мне не нужен optgroup. Кроме того, когда я смотрю на значение, я замечаю, что это индексированное значение пары ключей. Моя проблема в том, что мне нужно иметь значения CREDIT и HOURS, чтобы потом можно было легко поместить их в мою базу данных.

Что я могу сделать? Проще говоря, я не хочу повторять их снова и снова, чтобы сопоставить ключ со значением.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Тег <optgroup> происходит из-за созданного вами массива. Я полагаю, что следующее изменение foreach даст значения параметров, которые вы хотите.

 foreach($sql->result() as $row) 
 {
     $credit_type[$row->credit_name]=$row->credit_name;
 }

Затем вам нужно внести небольшое изменение во второй аргумент form_dropdown(). Прежде чем вы поместили массив $credit_type в другой массив. Вот что привело к появлению тега <optgroup>.

 $data['credit_type'] = form_dropdown('credit_type', $credit_type);
0 голосов
/ 08 мая 2018

Вам нужно дать ему массив value => option label, поэтому array('HOURS' =>'HOURS'). Вы даете ему массив как array(0 => 'HOURS')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...