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

Форум PHP

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

 

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

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

тема: Передача значения "0" из html-формы
 
 автор: kras-nastya   (17.03.2006 в 20:11)
 
 

Скажите, почему если у меня, допустим, здесь:

        <INPUT type="radio" name="q4" value="0">существенно увеличится<br>
        <INPUT type="radio" name="q4" value="1">останется на прежнем уровне или немного вырастет<br>
        <INPUT type="radio" name="q4" value="2">снизится<br>

есть значение "0", то оно передается, как будет нет ответа? Т.е. при запросе

    if (!empty($HTTP_POST_VARS{'q4'}))

выдает, что оно пусто?

Можно ли это как-то исправить?

   
 
 автор: Trianon   (17.03.2006 в 20:15)   письмо автору
 
   для: kras-nastya   (17.03.2006 в 20:11)
 

if (!empty($_POST['q4'])) 
   echo $_POST['q4'];
А лучше
if (isset($_POST['q4'])) 
    echo $_POST['q4'];

   
 
 автор: kasmanaft   (17.03.2006 в 20:19)   письмо автору
 
   для: kras-nastya   (17.03.2006 в 20:11)
 

потому как 0 воспринимается как empty....
можно наверно проверить if (!empty($HTTP_POST_VARS{'q4'}) || ($HTTP_POST_VARS{'q4'} == 0))

ну да... или isset....

   
 
 автор: Trianon   (17.03.2006 в 20:25)   письмо автору
 
   для: kasmanaft   (17.03.2006 в 20:19)
 

Я обычно не проверяю на пустоту ничего, кроме массивов. $_POST['q4'] - явно не массив.

   
 
 автор: Саня   (17.03.2006 в 20:32)   письмо автору
 
   для: kras-nastya   (17.03.2006 в 20:11)
 

Нужно воспользоваться оператором эквивалентности ===:
<?php
if ( $_POST['q4'] === "0" ) {
  echo(
"существенно увеличится");
}
?>

   
 
 автор: Trianon   (17.03.2006 в 20:49)   письмо автору
 
   для: Саня   (17.03.2006 в 20:32)
 

Чем хуже обычное сравнение?
<? 
if ( $_POST['q4'] == "0" )  
    echo(
"существенно увеличится"); 
?> 

   
 
 автор: kras-nastya   (21.03.2006 в 13:49)
 
   для: Trianon   (17.03.2006 в 20:49)
 

Если делать что-то вроде предложенного:

<? 
if ( $_POST['q4'] == "0" )   
    echo(
"существенно увеличится"); 
?> 

то тогда он пропускает вперед, даже в случае, что ответа действительно нет! Поэтому это не подходит.

А подставив $_POST['q4'] вместо $HTTP_POST_VARS{'q4'} разницы тоже нет - считает, что значение пусто.

Что же, получается, нет значение и значение=0 - это суть одно и то же?
И значение=0 просто нельзя использовать?

   
 
 автор: Trianon   (21.03.2006 в 13:57)   письмо автору
 
   для: kras-nastya   (21.03.2006 в 13:49)
 

А если проверить вначале на if(isset($_POST['q4'] )) чтобы отсечь вариант отсутствия ответа?

   
 
 автор: Саня   (21.03.2006 в 14:12)   письмо автору
 
   для: kras-nastya   (17.03.2006 в 20:11)
 

Вот так.

   
Rambler's Top100
вверх

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