#php #codeigniter
#php #codeigniter
Вопрос:
Я использую codeigniter для создания небольшого веб-сайта. Мне любопытно, как заполнить флажок из базы данных?
Допустим, у меня есть следующий запрос;
$this->db->select('status');
$this->db->where('id', 3');
$this->db->get('table);
Как сделать так, чтобы флажок проверялся, если результат приведенного выше запроса равен 1?
Комментарии:
1. попробуйте <input type=’checkbox’ checked=’проверено’ /> я думаю, вы спрашиваете, как установить флажок на основе значения db.
Ответ №1:
Вы можете сделать что-то вроде этого. Это просто идея, поскольку я не могу точно видеть, что вы возвращаете. $entry['status']
это результат вашего запроса.
if($entry['status'] == 1){
echo '<input type="checkbox" checked="checked" disabled="disabled"/>';
}
else {
echo '<input type="checkbox" unchecked="unchecked" disabled="disabled"/>';
}
Ответ №2:
Взгляните на form_checkbox()
раздел документации codeigniter form helper
Ответ №3:
Если вы хотите установить флажок выбора, если значение статуса больше 1, вы могли бы сделать что-то вроде этого.
$result = $this->db->select('status')->get_where('table', array('id'=> 3))->row();
if($result->status > 1)
{
print '<input type="checkbox" name="checkbox" checked="checked" value="'.$result->status.'" />';
}else{
print '<input type="checkbox" name="checkbox" value="'.$result->status.'" />';
}
Вы захотите проверить, что строка действительно возвращает значения, иначе вы получите var из-за ошибки, не связанной с объектом. Это всего лишь пример.
Комментарии:
1. Почему это вообще должно быть больше 1?
2. Его вопрос был — «Как сделать так, чтобы флажок проверялся, если результат приведенного выше запроса равен 1?»
3. @mhiggins Ну, я не мог понять, почему у вас должно быть больше 1, поскольку они равны либо 1, либо 0 (включены или выключены). нет?
4. Нет. Флажки могут иметь любое значение … это правда, что у них есть состояние off и on, но в состоянии on вы можете присвоить его значению что угодно. Кроме того, он хочет прочитать значение «статус» из базы данных. Это также может содержать что угодно, поэтому мы предполагаем, что это числовое значение, и оно имеет значения больше 1.
5. @mhiggins Да, любое значение, но вы бы сохранили их значение в столбце таблицы базы данных. Фактическое значение ячейки, которое вы возвращаете, является логическим значением.
Ответ №4:
Это работает для меня и просто:
<?php foreach($tb as $table_row){ ?>
<input type="checkbox" <?php if ($table_row['reconciled'] == "1" {echo "checked = checked";} ?>