Получение значений флажков, как проверено из базы данных codeigniter

Я пытаюсь получить значения флажка, вставленные в мою базу данных, как проверено … Я вставил его, используя метод implode в качестве строки. Он вставил значения успешно., Но мое условие, чтобы получить значение флажка «флажок» не работает ..

<label>Some text</label>
<input type="checkbox" name="text[]" value="text1"<?php echo set_checkbox('text', $row->Some_text)== 'text1' ? "checked" : "";?>>text1
<input type="checkbox" name="text[]" value="text2"<?php echo set_checkbox('text', $row->Some_text)== 'text2' ? "checked" : "";?>>text2
<input type="checkbox" name="text[]" value="text3"<?php echo set_checkbox('text', $row->Some_text)== 'text3' ? "checked" : "";?>>text3
<input type="checkbox" name="text[]" value="text4"<?php echo set_checkbox('text', $row->Some_text)== 'text4' ? "checked" : "";?>>text4

Я написал модель для редактирования как:

public function edit($id)
{
$sometext = $this->input->post('text');
$data=array(
'Some_text'=>json_encode(implode(",", $sometext)),
);
$this->db->set($data);
$this->db->where('User_id',$id);
$this->db->update('tbl_check');
$query = $this->db->get('tbl_check');
return $query->row();
}

И редактирование работает хорошо ..

1

Решение

Иногда использование функций из фреймворков просто делает это совершенно ненужным и грязнее.

<input type="checkbox" name="text[]" value="text1" <?php echo ($yourVar == 'text1' ? 'checked' : null); ?>>
3

Другие решения

Просто получите данные из модели. и передать его на страницу флажка.

$data['check_box_data']=$query->row_array();
$this->load->view('page',$data);

Посмотреть:

<?php
$c_box1=$c_box2=$c_box3='';
$chk_data=explode(',',$chk_box_data); // $chk_box_data is which is from DB
foreach($chk_data as $list)
{
//chk_box1_value1,2,3 are original check box values
if($list=='chk_box1_value'){$c_box1='checked';}
if($list=='chk_box2_value'){$c_box2='checked';}
if($list=='chk_box3_value'){$c_box3='checked';}
}
?>

label>Some text</label>
<input type="checkbox" name="text[]" value="text1"<?php echo $c_box1;?>>text1
<input type="checkbox" name="text[]" value="text2"<?php echo $c_box2;?>>text2
<input type="checkbox" name="text[]" value="text3"<?php echo $c_box3;?>>text3

Попробуй это….

1

Используя стандартные функции CodeIgniter:

form_checkbox('fieldname', '1', set_checkbox('fieldname', '1', (TEST YOUR DB DATA HERE)));

пример:

form_checkbox('fieldname', '1', set_checkbox('fieldname', '1', (!empty($data_from_db))));

объяснение:
set_checkbox() определяет, выводить ли checked="checked" и, таким образом, покажите свое поле как отмеченное или нет.

третий параметр set_checkbox () определяет, является ли исходное состояние вашего флажка будет отмечено / не отмечено. Если третий параметр оценивается как TRUE при первой загрузке формы флажок будет отмечен; если он оценивается в FALSE, это не будет отмечено.

Поэтому при редактировании данных из таблицы используйте контроллер, чтобы получить данные из таблицы и передать их в форму. В вашей форме протестируйте данные из вашей таблицы в третьем параметре set_checkbox ().

В моем примере выше данные для FIELDNAME были сохранены в таблице как «1» или «0».

Когда загружается форма редактирования, третий параметр SET_CHECKBOX проверяет: «Являются ли данные из таблицы пустыми?» Если есть данные, !empty() возвращает TRUE, в результате чего set_checkbox () устанавливает для DEFAULT STATE значение CHECKED.

Ключ использует ТРЕТИЙ ПАРАМЕТР set_checkbox () для оценки вашего существующего значения.

1

Ты используешь set_checkbox неправильно. Посмотрите на документация: не используйте это в условном выражении. Ваш вопрос не дает много информации, но я предполагаю, что вы хотите что-то вроде этого:

<input type="checkbox" name="text[]" value="text1"<?php echo set_checkbox('text[]', 'text1');?>>text1
<input type="checkbox" name="text[]" value="text2"<?php echo set_checkbox('text', 'text2');?>>text2
<input type="checkbox" name="text[]" value="text3"<?php echo set_checkbox('text', 'text3');?>>text3
<input type="checkbox" name="text[]" value="text4"<?php echo set_checkbox('text', 'text4');?>>text4
0
По вопросам рекламы [email protected]