Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как передать значения checkbox
 
 автор: nato   (31.05.2008 в 11:41)   письмо автору
 
 

Добрый день.
Такой вопрос:
есть форма и там чекбоксы

<form name='db' action='form.php' method=POST>
<br><input type=checkbox name="db_1"> БД 1
<br><input type=checkbox name="db_2"> БД 2
<input type=hidden name="do" value="0">
<br><br><input type=button name="backup" value="BACKUP" onclick="db.do.value='1';db.submit();">
&nbsp;&nbsp;&nbsp;
<input type=button name="restore" value="RESTORE" onclick="db.do.value='2';db.submit();">
</form>


Потом я считываю значение, например, первого чекбокса
$db_1=@$_POST['db_1'];
if ($db_1!='') echo "db_1!=''"; //но ничего не выводит, хотя галка стояла

Подскажите, пожалуйста, как получить данные чекбоксов. Что я делаю неправильно?

   
 
 автор: sim5   (31.05.2008 в 12:02)   письмо автору
 
   для: nato   (31.05.2008 в 11:41)
 

Не давайте элементам зарезервированные в JS имена, смените имя do на любое другое. Зачем кстати это скрытое поле? Например, пользователь выбрав одну из кнопок (BACKUP, RESTORE), отправит форму, но при этом не обязательно могут быть отмечены чекбоксы, естественно вы ничего и не получите, так как их не выбрали.

   
 
 автор: SiM(R)   (31.05.2008 в 13:08)   письмо автору
 
   для: sim5   (31.05.2008 в 12:02)
 

К сожалению я еще ничего не понимаю в Java. Возможно нужно вместо
<input type=button
поставить
<input type=submit

   
 
 автор: sim5   (31.05.2008 в 13:16)   письмо автору
 
   для: SiM(R)   (31.05.2008 в 13:08)
 

Зачем? Можно любой кнопке указать отправку формы, так как и делает автор. Но если ожидать чего-то обязательного, то надо это проверять перед отправкой. А в имени скрытого поля ошибка, это значит, что ничего ему присваиваться не будет и JS работать не будет - не будет тправки формы. Собственно на все это безобразие браузер укажет сразу при загрузке страницы.

   
 
 автор: Киналь   (31.05.2008 в 14:42)   письмо автору
 
   для: nato   (31.05.2008 в 11:41)
 

1) Не ставьте в коде @, если не уверены на 100% в необходимости этого.
2) В подобных случаях делайте print_r($_POST).
3) В данном случае можно обойтись без скрытогополя:

<input name='act' value='BACKUP' type='submit'>
<input name='act' value='RESTORE' type='submit'>

Тогда у вас будет переменная $_POST['act'], в которой записано нужное действие.

   
 
 автор: nato   (02.06.2008 в 09:38)   письмо автору
 
   для: Киналь   (31.05.2008 в 14:42)
 

Всем огромнейшее спасибо!!!
Все работает так, как надо и без скрытого поля!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования