За последние 24 часа нас посетили 58059 программистов и 15876 роботов. Сейчас ищут 1465 программистов ...

Обработка формы

Тема в разделе "PHP для новичков", создана пользователем esseleznev, 29 окт 2017.

  1. esseleznev

    esseleznev Активный пользователь

    С нами с:
    29 окт 2017
    Сообщения:
    3
    Симпатии:
    0
    Подскажите пожалуйста, почему при заходе на страницу, форма обрабатывается заранее? а не по клику по кнопке? Это потому что она обрабатывается сама на себя? Если это так, то почему тогда обрабатывается не первый if , a сразу elseif ?
    Ссылка: drazler.ru
    Код:
    Код (Text):
    1. <DOCTYPE html>
    2.     <meta charset="utf-8">
    3. <html>
    4.     <head>
    5.      <title> Расчет цены на php </title>
    6.      <style>
    7.        
    8.      </style>
    9.     </head>
    10.     <body>
    11.     <div>  
    12.         <div>
    13.             <div>
    14.                 <select name="nameEvent" form="data">
    15.                 <option value="no"> Выбрать мероприятие </option>
    16.                 <option value="yes"> Свадьба </option>
    17.                 <option value="yes"> Юбилей </option>
    18.                 <option value="yes"> Торжество </option>
    19.                 <option value="yes"> Банкет </option>
    20.                 <option value="yes"> Корпаратив </option>
    21.                 <option value="yes"> Новый год </option>
    22.                 <option value="yes"> День Рождения </option>
    23.                 <option value="yes"> Праздник </option>
    24.                 <option value="yes"> Встреча </option>
    25.                 <option value="yes"> Другое... </option>
    26.                 </select>
    27.             </div>
    28.             <div>
    29.                  <input type="text" placeholder="Количество гостей" name="quantityGuest" maxlength="3" form="data"/>
    30.             </div>
    31.             <div>
    32.                 <p><input type="checkbox" name="nameService" value="yes" form="data">Тамада</p>
    33.                 <p><input type="checkbox" name="nameService" value="yes" form="data">Фотограф</p>
    34.                 <p><input type="checkbox" name="nameService" value="yes" form="data">Оператор</p>
    35.                 <p><input type="checkbox" name="nameService" value="yes" form="data">Диджей</p>
    36.                 <p><input type="checkbox" name="nameService" value="yes" form="data">Живая музыка</p>
    37.             </div>
    38.             <form id="data" method="POST">
    39.             </form>
    40.             <p><input type="submit" form="data" value="Расчитать"></p>
    41.         <?php
    42.         function CalculationPrice(){
    43.         if ($_POST['nameEvent'] == "no"){
    44.             $MsgEvent = 'Вы не выбрали тип мероприятия!';
    45.             return $MsgEvent;
    46.         }
    47.         else {
    48.             if ($_POST['quantityGuest'] == false){
    49.             $MsgNum = 'Вы не ввели количество гостей!';
    50.             return $MsgNum;
    51.             }
    52.             elseif (preg_match ('~\D+~',$_POST['quantityGuest'])){
    53.                 $MsgNum = 'Вы ввели не коректное количество гостей!';
    54.                 return $MsgNum;
    55.             }
    56.             else {
    57.                 preg_replace ('~\D+~',$_POST['quantityGuest']);
    58.                 htmlspecialchars ($_POST['quantityGuest']);
    59.                 ereg_replace ("\n"," ",$_POST['quantityGuest']);
    60.                 substr ($_POST['quantityGuest'],0,3);
    61.                 $Quantity = $_POST['quantityGuest'];
    62.                 $NAMEEVENT = 900;
    63.                 if ($_POST['nameService'] == "yes"){
    64.                     $NAMESERVICE = 5000;
    65.                 }
    66.                 $Summa = $Quantity * $NAMEEVENT + $NAMESERVICE;
    67.                 return $Summa;
    68.             }
    69.         }
    70.            
    71.         }
    72.             ?>
    73.            
    74.           <p> Итого: <?php echo (CalculationPrice()); ?> </p>
    75.         </div>
    76.     </div>
    77.     </body>
    78. </html>
     
  2. DoctorMED

    DoctorMED Новичок

    С нами с:
    19 фев 2016
    Сообщения:
    3
    Симпатии:
    1
    тег <form> должен включать в себя форму. А у Вас он что делает? Он как-то у Вас отдельно от всего
     
    _ne_scaju_ нравится это.
  3. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @esseleznev
    HTML:
    1.        
    2.             <form id="data" method="POST">    
    3.                 <select name="nameEvent" form="data">
    4.                 <option value="no"> Выбрать мероприятие </option>
    5.                 <option value="yes"> Свадьба </option>
    6.                 <option value="yes"> Юбилей </option>
    7.                 <option value="yes"> Торжество </option>
    8.                 <option value="yes"> Банкет </option>
    9.                 <option value="yes"> Корпаратив </option>
    10.                 <option value="yes"> Новый год </option>
    11.                 <option value="yes"> День Рождения </option>
    12.                 <option value="yes"> Праздник </option>
    13.                 <option value="yes"> Встреча </option>
    14.                 <option value="yes"> Другое... </option>
    15.                 </select>
    16.             </div>
    17.             <div>
    18.                  <input type="text" placeholder="Количество гостей" name="quantityGuest" maxlength="3" form="data"/>
    19.             </div>
    20.             <div>
    21.                 <p><input type="checkbox" name="nameService" value="yes" form="data">Тамада</p>
    22.                 <p><input type="checkbox" name="nameService" value="yes" form="data">Фотограф</p>
    23.                 <p><input type="checkbox" name="nameService" value="yes" form="data">Оператор</p>
    24.                 <p><input type="checkbox" name="nameService" value="yes" form="data">Диджей</p>
    25.                 <p><input type="checkbox" name="nameService" value="yes" form="data">Живая музыка</p>
    26.             </div>
    27.      
    28.             <p><input type="submit" form="data" value="Рассчитать"></p>
    29.             </form>
     
  4. Griffter

    Griffter Новичок

    С нами с:
    27 сен 2017
    Сообщения:
    92
    Симпатии:
    25
    Как вы написали, так он и работает... У вас идет вызов функции независимо от того, нажата ли кнопка или нет, вот оно и проверяет все условия при выдаче формы.
     
  5. esseleznev

    esseleznev Активный пользователь

    С нами с:
    29 окт 2017
    Сообщения:
    3
    Симпатии:
    0
    это я пробывал :)
    --- Добавлено ---
    И вправду что это я :) , а решение это только привязывать событие через JS ? Я что то догнать не могу как это без JS сделать.
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Без JS никак
     
  7. esseleznev

    esseleznev Активный пользователь

    С нами с:
    29 окт 2017
    Сообщения:
    3
    Симпатии:
    0
    И вправду что это я :) , а решение это только привязывать событие через JS ?
    Понял Спасибо!