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 :: Не срабатывает чексбокс

 PHP.SU

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


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

> Без описания
Syltan
Отправлено: 11 Июля, 2010 - 21:29:40
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2010  


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




Не срабатывает такое.
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <html><head></head>
  3. <body>
  4. <form action="top1.php" method="get">
  5. <input type="checkbox" value="f1()" name="a1"  > Windows 2000
  6. <input type="checkbox" value="f2()" name="a2"  > Windows 7
  7. </form>
  8. </body>
  9. </html>
  10.  
  11. <?php
  12. function f1(){
  13. if($_POST['a1']){
  14. echo 'Good';
  15. }else
  16. echo 'bad';
  17. }
  18. ?>
  19.  


Хочу при выборе первого чекбокса, там где написано "Windows 2000",
хочу чтоб выводилось ниже сообщение Хорошо, в противном случаи
ичего не выводилось.
 
 Top
ALEN
Отправлено: 11 Июля, 2010 - 21:58:38
Post Id



Участник


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


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




Syltan
Вы основы HTML + PHP читали ?
 
 Top
Syltan
Отправлено: 11 Июля, 2010 - 22:01:27
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2010  


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




Как исправить код, что там исправить нужно?
 
 Top
ALEN
Отправлено: 11 Июля, 2010 - 22:02:53
Post Id



Участник


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


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




Syltan
Ну давайте разберем:
Какой тут код должен обрабатываться на стороне сервера и вообще, что должно вывестись?
 
 Top
Syltan
Отправлено: 11 Июля, 2010 - 22:06:25
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2010  


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




При отметке галочкой первого чекбокса должно ниже самих чекбоксов вывестись слово ГУД(хорощо). <form action="top1.php" method="get"> Отправка данных методом гет в этот же файл в котором написан этот весь код, который я написал в этой теме, первом посте. Методом пост забыл, вместо гет.

(Отредактировано автором: 11 Июля, 2010 - 22:08:27)

 
 Top
ALEN
Отправлено: 11 Июля, 2010 - 22:35:57
Post Id



Участник


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


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




Syltan
PHP выполняется только на стороне сервера, тебе нужно смотреть как реализовать такое на стороне javascript и сначала составь правильный html
 
 Top
Реф
Отправлено: 11 Июля, 2010 - 22:57:51
Post Id



Частый гость


Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010  
Откуда: Реутов, Россия


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




Syltan
Просто из любопытства, ты какие книжки по пхп, хтмл читал?


-----
Думать надо головой, а не головкой!
 
 Top
ALEN
Отправлено: 11 Июля, 2010 - 23:04:33
Post Id



Участник


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


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




Реф
Сразу себя вспоминаю, хотел сначала летать, но не умел даже смотреть )))
Потом правда попалась книжка: "Самоучитель PHP4 Дмитрия Котерова" - (DENWER - его проект)- вот там и сейчас очень актуальная информация. Рекомендую всем, кто знает как работает HTML, но не знает PHP

P.S. Так хотел выучить, что через телефон SonyErricson K750I - всю книгу в PDF прочел (572 страницы, с предисловиями) - и уже через неделю сам без проблем написал гостевую книгу с админкой.

(Отредактировано автором: 11 Июля, 2010 - 23:07:09)

 
 Top
Реф
Отправлено: 11 Июля, 2010 - 23:09:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010  
Откуда: Реутов, Россия


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




Мне больше интересно, что нужно было прочитать, чтоб ТАКОЕ выбдать


-----
Думать надо головой, а не головкой!
 
 Top
ALEN
Отправлено: 12 Июля, 2010 - 00:10:52
Post Id



Участник


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


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




Реф
По факту ничего! Только в интернете основы html
 
 Top
MarShall
Отправлено: 12 Июля, 2010 - 08:01:43
Post Id



Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Июнь 2010  


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




Syltan
Почти правильно Улыбка
Исправил, сравните со своим и сделайте выводы:
PHP:
скопировать код в буфер обмена
  1. <html><head></head>
  2. <body>
  3. <form action="top1.php" method="POST">
  4. <input type="checkbox" name="a1"> Windows 2000<br>
  5. <input type="checkbox"> Windows 7<br>
  6. <input type="submit" value="Жми сюда">
  7. </form>
  8. </body>
  9. </html>
  10. <?PHP
  11. function f1(){
  12. if($_POST['a1'] == "on") echo 'Хорошо';
  13. else echo 'Плохо';
  14. }
  15. f1();
  16.  
  17. ?>

Ошибки Вашего скрипта:
1) Непонятно зачем указаны value.
2) Передается GET запрос, а проверяется POST.
3) Проверяется истинность переменной, когда должно проверяться ее значение "on".
4) Нет кнопки отправки запроса, submit, то есть значение чекбокса впринципе никуда не передается.
5) Не вызвана функция f1() после ее объявления.

Кстати, файл должен называться top1.php
и имя второго чекбокса я убрал, ибо оно вообще не проверяется, зачем тогда?

Пользуйтесь.

(Отредактировано автором: 12 Июля, 2010 - 08:16:25)

 
 Top
JustUserR
Отправлено: 12 Июля, 2010 - 21:00:55
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




MarShall пишет:
Исправил, сравните со своим и сделайте выводы:
В приведенной вами версии PHP-скрипта также имеются свои недочеты - во-первых второй checkbox не имеет имени name и соответственно никогда не будет передаваться в строке запроса вне зависимости от того был ли он выбран или нет - во-вторых checkbox-ы действительно обладают тем свойстом что при отсутсвии выбора флажка и вообще не передается на сервер и его можно идентифицировтаь на наличию имени в строке запроса - но тем не менее лучше указывать для них явные value-значения


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
MarShall
Отправлено: 12 Июля, 2010 - 22:34:14
Post Id



Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Июнь 2010  


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




Это понятно, я привел пример, который выполняет поставленную задачу, в которой и не должен проверяться второй флажок, то есть в данном примере смысла указывать имя ему просто нету, если бы мы его проверяли, тогда да..

Вопрос, для чего чекбоксам value? Я тоже новичек в PHP, просто интересно.
 
 Top
Uchkuma
Отправлено: 12 Июля, 2010 - 22:46:14
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




MarShall пишет:
Вопрос, для чего чекбоксам value? Я тоже новичек в PHP, просто интересно.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="checkbox" name="a[]" value="1"><br>
  3. <input type="checkbox" name="a[]" value="2"><br>
  4. <input type="checkbox" name="a[]" value="3"><br>
  5. <input type="checkbox" name="b[]" value="1"><br>
  6. <input type="checkbox" name="b[]" value="2"><br>
  7. <input type="checkbox" name="b[]" value="3">
  8.  
конечно, все это можно заменить селектом с атрибутом multiple, но все же.
 
 Top
JustUserR
Отправлено: 13 Июля, 2010 - 00:53:56
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




MarShall пишет:
Вопрос, для чего чекбоксам value? Я тоже новичек в PHP, просто интересно
Вопрос об использовани аттрибута value для флажка checkbox относится скорее не к PHP а к разработке HTML-форм и передаче их в строке запроса - при этом в зависимости от принадлежности элемента формы к определенного типу его имя и значения может передаваться различным образом - а соответственно и по-разному интерпретироваться в PHP-скрипте Все multiple-элементы формы такие как checkbox-ы и select-ы со множественным выбором передаются по следующему принципу - если конкретный элемент выбран то передается его имя и значение а если не выбран то не передается вообще ничего Обработчику HTML-форм вообще не важно какое имя у передаваемого элемента - для него это лишь значение которое будет закодировано urlencode-методом и подставлено слева от знака равно в соответствующей строке запроса - по этой причине различные элементы могут иметь одинаковые имена Такая концепция хорошо согласовывается с синтаксисом массивов данных в языке PHP и отлично наблюдается при использовании механизма типа register_globals - если в форме имеется поле со множественным выбором то оно будет сохранено в виде $name=value а если имя содержит пустые квадратные скобки то как раз будет сформирован массив - то есть можно сказать что конструкция обработки множественных элементов в форме не является специальным механизмом PHP а является следствие использование встроенного синтакисиса добавления в конец массива - как будто была вызвана операция eval('$'.urldecode($name).'='.urldecode($value)) - а если значение не было упомянуто вообще то оно равно именно null а не пустому массиву что также полностью является истинным


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB