Я пытаюсь получить значения флажка, вставленные в мою базу данных, как проверено … Я вставил его, используя метод 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();
}
И редактирование работает хорошо ..
Иногда использование функций из фреймворков просто делает это совершенно ненужным и грязнее.
<input type="checkbox" name="text[]" value="text1" <?php echo ($yourVar == 'text1' ? 'checked' : null); ?>>
Просто получите данные из модели. и передать его на страницу флажка.
$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
Попробуй это….
Используя стандартные функции 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 () для оценки вашего существующего значения.
Ты используешь 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