Multi page Form

Тема в разделе "PHP", создана пользователем 1Dreamweaver1, 18 ноя 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Нужна помощь, есть две формы на двух страницах form1.php form2.php
    пример form1.php
    Код:
    ....
    <form name="firstform" method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">
    <label for="fname">FName:</label>
    <input name="fname" type="text" />
    <label for="lname">LName:</label>
    <input name="lname" type="text" />
    <label for="email">Email:</label>
    <input name="email" type="text" > 
    <label for="selectMultiple">Number:</label>
    <select name="select" id="selectMultiple">
    <option value="" >Range</option>
    <option>1-2</option>
    <option>3-5</option>
    <option>5+</option>
    </select>
    <input type="image" src="images/submit.gif" name="sendnow" value="Submit" />
    <form>
    .....
    На данный момент форма работает таким образом:
    Если посетитель (form1.php), после заполнения всех полей, нажал на кнопку "submit", данные отправляются на емаил и в бд.
    Необходимо сделать следующее:
    Если посетитель (form1.php), не выбрал поле "Range" и нажал на кнопку "submit", то он должен перейти на 2-ю форму form2.php После заполнения всех полей формы form2.php и после нажатия кнопки "submit", данные из form1 и form2 должны прийти на емаил и в бд.
     
  2. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    проверяете значение select - если оно не пустое, то пишете данные в базу и на емайл, соответственно если пустое то переходите на вторую форму, как-то так:

    PHP:
    $select $_POST['select'];
    if (
    $select=='Range'){
    //условие 1
    }else{
    //условие 2
    }
     
    1Dreamweaver1 нравится это.
  3. zss

    zss Постоялец

    Регистр.:
    22 июн 2007
    Сообщения:
    55
    Симпатии:
    6
    Если ничего не выбрано то данный список возвратит
    пустую строку (value=""), поэтому надо писать
    PHP:
    $select $_POST['select'];
    if (
    isempty($select)){
    //условие 1
    }else{
    //условие 2
    }  
     
  4. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Сам то понял что скзал? И что советуешь?

    Во первых не isempty(), а empty(). Функции isempty() не существует, если ты ее сам не создал.

    Во вторых не надо там что либо проверять дополнительно все и так нормально. Влюбом случае $_POST['select'] будет существовать и иметь значение, даже если это будет значение NULL условие которое привел t3s будет работать верно.

    И чтобы наверняка объясню для самых маленьки кодеров PHP что же происходит в этом условии не кодом а словами. Если $_POST['select'] равно Range то выполняем условие 1 в любых иных случаях условие 2.
     
  5. zss

    zss Постоялец

    Регистр.:
    22 июн 2007
    Сообщения:
    55
    Симпатии:
    6
    Оно не будет равно Range Никогда!
    Если список не трогали, то $_POST['select']
    будет равно значению указанному в параметре Value,
    а там написано:
    <option value="" >Range</option>
    Про isempty() извиняюсь - больше программирую на С++,
    потому перепутал.
     
    trooll нравится это.
  6. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    точно, не обратил внимания на саму хтмл-форму

    ТС, в option замените - вместо
    HTML:
    <option value="" >Range</option>
    сделайте
    HTML:
    <option value="Range" >Range</option>
     
  7. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Извиняюсь, аналогично t3s не внимательно посмотрел форму.

    Здесь конечно лучше проставить дефалтное значение на пункт Range, да бы меньше замарачиваться.


    Не чего страшно, у каждого программера о своем голова пухнет, от того и ошибаемся, главное вовремя поправиться ;)
     
    1Dreamweaver1 нравится это.
Статус темы:
Закрыта.