Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Достать Checkbox из БД со значением

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помогите разобраться пожалуйста
rostik1991
Отправлено: 02 Апреля, 2015 - 11:49:22
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




Добрый день. Есть у меня в БД таблица "SERVICE", из БД я достаю полностью все поля этой таблицы.

Заносятся данные в таблицу через :

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="checkbox"  value="Да" name="first">
  3. <input type="checkbox" value="Да" name="second">
  4. <input type="checkbox" value="Да" name="third">
  5. <input type="checkbox" value="Да" name="fourth">
  6.  


Мне нужно достать их из таблицы с такими же значениями (отмечено или не отмечено) с которыми они были занесены в базу. В БД для каждого чекбокса есть своя ячейка.
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [id] => 2
  6.             [animal_id] => 2
  7.             [user_id] => 1
  8.             [first] => Да
  9.             [second] => Да
  10.             [third] => Да
  11.             [fourth] => Нет
  12.            
  13.  



PHP:
скопировать код в буфер обмена
  1.  
  2. Вот так не работает.
  3.  
  4.  <?PHP foreach($service as $id => $serv): ?>
  5.  <?PHP for($i=0;$i<count($serv);$i++){
  6.  if($serv == 'Да'){
  7.  $type = "checked";
  8. } }?>
  9. <input type="checkbox" [b]<?=$type?>[/b] value="Да" name="first">
  10. <input type="checkbox" [b]<?=$type?>[/b] value="Да" name="second" >
  11. <input type="checkbox" [b]<?=$type?>[/b] value="Да" name="third" >
  12. <input type="checkbox" [b]<?=$type?>[/b]  value="Да" name="fourth" >
  13.  
  14. <?PHP endif; ?>
  15.  


Я уже искал в интернетах но не нашел, может кто-то поможет. Спасибо!
 
 Top
DeepVarvar Супермодератор
Отправлено: 02 Апреля, 2015 - 12:18:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




У чекбокса не должно быть (так задумано) значения.
Он просто либо есть, либо его нет.
В БД надо хранить не слова да-нет, а TINYINT(1)/ENUM/BOOL значения 0 или 1.
 
 Top
rostik1991
Отправлено: 02 Апреля, 2015 - 13:00:01
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




DeepVarvar пишет:
У чекбокса не должно быть (так задумано) значения.
Он просто либо есть, либо его нет.
В БД надо хранить не слова да-нет, а TINYINT(1)/ENUM/BOOL значения 0 или 1.


Возможно есть решение данной задачи ? В форме нужно выбрать инпуты, а на другой странице нужно вывести их значения, и должна быть возможность изменять эти значения
 
 Top
Faraon-san
Отправлено: 02 Апреля, 2015 - 13:03:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013  


Помог: 8 раз(а)




PHP:
скопировать код в буфер обмена
  1.  <?PHP foreach($service as $id => $serv) : ?>
  2. <input type="checkbox" <?PHP echo $serv['first'] == 'Да' ? 'checked' : ''; ?> value="Да" name="first">
  3. <input type="checkbox" <?PHP echo $serv['second'] == 'Да' ? 'checked' : ''; ?> value="Да" name="second">
  4. <input type="checkbox" <?PHP echo $serv['third'] == 'Да' ? 'checked' : ''; ?> value="Да" name="third">
  5. <input type="checkbox" <?PHP echo $serv['fourth'] == 'Да' ? 'checked' : ''; ?> value="Да" name="fourth">
  6. <?PHP endforeach; ?>
 
 Top
DeepVarvar Супермодератор
Отправлено: 02 Апреля, 2015 - 13:11:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




rostik1991 пишет:
В форме нужно выбрать инпуты
А ты сам проверь. Отправляя форму с неотмеченным чекбоксом - он вообще не отправится будто его в форме нет. Т.е. значение его не важно. Он либо есть, либо его нет. Значит при обработке формы тебе нужно только проверить прилетел ли чекбокс, если не прилетел, значит записать 0, если прилетел записать 1. И не важно на каких ты там страницах их потом выводишь - если записано 1, значит checked="checked" а если записано 0, значит вообще без этого атрибута.
 
 Top
rostik1991
Отправлено: 02 Апреля, 2015 - 15:41:31
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




Faraon-san пишет:
PHP:
скопировать код в буфер обмена
  1.  <?PHP foreach($service as $id => $serv) : ?>
  2. <input type="checkbox" <?PHP echo $serv['first'] == 'Да' ? 'checked' : ''; ?> value="Да" name="first">
  3. <input type="checkbox" <?PHP echo $serv['second'] == 'Да' ? 'checked' : ''; ?> value="Да" name="second">
  4. <input type="checkbox" <?PHP echo $serv['third'] == 'Да' ? 'checked' : ''; ?> value="Да" name="third">
  5. <input type="checkbox" <?PHP echo $serv['fourth'] == 'Да' ? 'checked' : ''; ?> value="Да" name="fourth">
  6. <?PHP endforeach; ?>


Благодарю!! Радость Огромное спасибо)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB