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

 PHP.SU

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


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

> Без описания
anton1990
Отправлено: 27 Августа, 2013 - 19:49:32
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2013  
Откуда: Деревня Пиндюкино Верхнее


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




Здравствуйте! Идея скрипта. Пользователь вводит число, выбирает флажки с цифрами, затем число и выбранные числа суммируются. После нажатия кнопки "Отправить" ничего в браузере не выводится. Вот полный код.
PHP:
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5.  <meta charset="utf-8" />
  6.  <title>input type="checkbox"</title>
  7.  <!--<link rel="icon" href="a.ico">-->
  8. </head>
  9. <body>
  10.  
  11. <?PHP
  12. //если отработал метод POST
  13. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  14.  $a = (int)$_POST['a'];
  15.  //в этот массив будут записаны значения выбранных флажков
  16.  $num = array();
  17.  if(isset($_POST['num'])) {
  18.   $num = $_POST['num'];
  19.  }
  20.  if($_REQUEST['clear']) {
  21.   $a = null;
  22.   unset($num);
  23.  }
  24. }
  25. ?>
  26.  
  27. <form>
  28.  <fieldset>
  29.   <legend>Отправка данных на сервер</legend>
  30.   <input type="text" name="a" value="<?PHP echo $a; ?>" />
  31.   &nbsp;&nbsp;&nbsp;
  32.   <label>введите число</label>
  33.       <label>выберите число для сложения</label>
  34.       <input type="checkbox" name="num[]" value="1" />
  35.   &nbsp;
  36.   <label>1</label>
  37.     <input type="checkbox" name="num[]" value="2" />
  38.   &nbsp;
  39.   <label>2</label>
  40.     <input type="checkbox" name="num[]" value="3" />
  41.   &nbsp;
  42.   <label>3</label>
  43.       <input type="submit" name="perform" value="Отправить" />
  44.   &nbsp;&nbsp;&nbsp;
  45.   <input type="submit" name="clear" value="Очистить" />
  46.  </fieldset>
  47.  <fieldset>
  48.   <legend>Чтение данных с сервера</legend>
  49.   <?PHP
  50.   /*
  51.   если отработал метод POST
  52.   и была нажата кнопка "Отправить"
  53.   и не была нажата кнопка "Очистить"
  54.   */
  55.   if($_SERVER['REQUEST_METHOD']=='POST' &&
  56.      $_REQUEST['perform'] &&
  57.      !$_REQUEST['clear']) {
  58.    echo $a, ' ';
  59.    $res = 0;
  60.    foreach($num as $key => $value) {
  61.     $res += (int)$value;
  62.     echo $value, ' ';
  63.    }
  64.    echo ' = ', $a + $res, '<br />';
  65.   }
  66.   else {
  67.    echo null;
  68.   }
  69.   ?>
  70.  </fieldset>
  71. </form>
  72.  
  73. </body>
  74. </html>
  75.  
 
 Top
anton1990
Отправлено: 27 Августа, 2013 - 20:12:25
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2013  
Откуда: Деревня Пиндюкино Верхнее


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




Нашел ошибку. В форме забыл указать action и method. Какой я ......
PHP:
скопировать код в буфер обмена
  1.  
  2. <form action="<?PHP echo $_SERVER["PHP_SELF"]; ?>" method="post">
  3.  

И вот подкорректировал
PHP:
скопировать код в буфер обмена
  1.  
  2. echo $a, ' ';
  3.    $res = 0;
  4.    foreach($num as $key => $value) {
  5.     $res += (int)$value;
  6.     echo ' + ', $value;
  7.    }
  8.    echo ' = ', $a + $res, '<br />';
  9.  


Полный код
PHP:
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5.  <meta charset="utf-8" />
  6.  <title>input type="checkbox"</title>
  7.  <!--<link rel="icon" href="a.ico">-->
  8. </head>
  9. <body>
  10.  
  11. <?PHP
  12. //если отработал метод POST
  13. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  14.  $a = (int)$_POST['a'];
  15.  //в этот массив будут записаны значения выбранных флажков
  16.  $num = array();
  17.  if(isset($_POST['num'])) {
  18.   $num = $_POST['num'];
  19.  }
  20.  if($_REQUEST['clear']) {
  21.   $a = null;
  22.   unset($num);
  23.  }
  24. }
  25. ?>
  26.  
  27. <form action="<?PHP echo $_SERVER["PHP_SELF"]; ?>" method="post">
  28.  <fieldset>
  29.   <legend>Отправка данных на сервер</legend>
  30.   <input type="text" name="a" value="<?PHP echo $a; ?>" />
  31.   &nbsp;&nbsp;&nbsp;
  32.   <label>введите число</label>
  33.       <label>выберите число для сложения</label>
  34.       <input type="checkbox" name="num[]" value="1" />
  35.   &nbsp;
  36.   <label>1</label>
  37.     <input type="checkbox" name="num[]" value="2" />
  38.   &nbsp;
  39.   <label>2</label>
  40.     <input type="checkbox" name="num[]" value="3" />
  41.   &nbsp;
  42.   <label>3</label>
  43.       <input type="submit" name="perform" value="Отправить" />
  44.   &nbsp;&nbsp;&nbsp;
  45.   <input type="submit" name="clear" value="Очистить" />
  46.  </fieldset>
  47.  <fieldset>
  48.   <legend>Чтение данных с сервера</legend>
  49.   <?PHP
  50.   /*
  51.   если отработал метод POST
  52.   и была нажата кнопка "Отправить"
  53.   и не была нажата кнопка "Очистить"
  54.   */
  55.   if($_SERVER['REQUEST_METHOD']=='POST' &&
  56.      $_REQUEST['perform'] &&
  57.      !$_REQUEST['clear']) {
  58.    echo $a, ' ';
  59.    $res = 0;
  60.    foreach($num as $key => $value) {
  61.     $res += (int)$value;
  62.     echo ' + ', $value;
  63.    }
  64.    echo ' = ', $a + $res, '<br />';
  65.   }
  66.   else {
  67.    echo null;
  68.   }
  69.   ?>
  70.  </fieldset>
  71. </form>
  72.  
  73. </body>
  74. </html>
  75.  
  76.  

Прикреплено изображение (Нажмите для увеличения)
a.png
 
 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