2013-03-01 6 views
1

Я использую codeigniter для разработки. Мне нужно заполнить MULTISELECT с выбранными значениямиКак заполнить мультиселекцию выбранными значениями в php?

Это мой JSON массив (который я должен быть выбран):

["1","2","3","4"] 

И это мой PHP код:

function tag($selected=0){ 
    $query = $this->db->get('tags'); 
    $html=''; 
    foreach($query->result() as $row){ 

     $html .='<option value="'.$row->id.'">'.$row->tag.'</option>'; 


    } 
    return $html; 
} 

$ selected содержит массив json. Теперь мне нужно заполнить список соревновательных тегов и выбранные элементы в массиве json.

Как я могу это сделать? Может ли кто-нибудь сказать мне, какой метод я использую здесь?

+0

Как выглядит ваш массив json? – Hast

+0

Я сохраняю массив json как ["1", "2", "3", "4"], который является идентификатором тега –

+0

И как вы точно хотите использовать этот массив? Я этого не понимал. – Hast

ответ

1
function tag($selected = null){ 
    $selected = ($selected === null) ? array() : json_decode($selected, true); 
    $query = $this->db->get('tags'); 
    $html=''; 
    foreach($query->result() as $row){ 
     $isSelected = (in_array($row->id, $selected)) ? ' selected="selected"' : ''; 
     $html .='<option value="'.$row->id.'"'.$isSelected.'>'.$row->tag.'</option>'; 


    } 
    return $html; 
} 
+0

Я проверил ваш ответ bu получать ошибки, как PHP-ошибка была обнаружена Серьезность: Предупреждение сообщение: in_array() ожидает параметр 2 будет массив, строка, заданная Имя файла: модели/common.php Порядковый номер: 92 –

+0

Также я могу видеть массив печати как Array ( [0] => 1 [1] => 2 [2] => 3 ) –

+0

О, извините, я использовал одну и ту же переменную два раза. Отредактировано ответ – Hast