Помогите с формой, используя $ _POST и $ PHP_SELF - PullRequest
0 голосов
/ 27 июля 2011

Я постараюсь описать, что я хочу сделать как можно лучше.Я хочу создать веб-страницу с использованием HTML и PHP.Веб-страница будет использовать несколько форм для получения входных данных от пользователя для последующего использования.Я хочу, чтобы форма отображалась пользователю только после отправки предыдущей формы.Например, у меня есть 3 формы:

  1. Как вас зовут? _ [ОТПРАВИТЬ]
  2. Какое ваше второе имя? _ [ОТПРАВИТЬ]
  3. Какая у вас фамилия? _ [SUBMIT]

Я хочу, чтобы второй вопрос отображался только после того, как настроена первая отправка.И я хочу, чтобы третий вопрос появлялся только после того, как будут заданы и первая, и вторая отправка.

Я хочу, чтобы веб-страница выглядела так, когда пользователь входит и отправляет свою информацию:

Как веб-страница выглядит вначале:


  1. Что такоетвое имя? Billy [SUBMIT]

Как выглядит веб-страница после того, как пользователь нажимает 1-ю отправку:


  1. Как вас зовут? Билли [ОТПРАВИТЬ]
  2. Какое ваше второе имя? Джо [ОТПРАВИТЬ]

Как выглядит веб-страница после того, как пользователь нажимает второе сообщение:


  1. Как вас зовут? Билли [ОТПРАВИТЬ]
  2. Какое ваше второе имя? Джо [ОТПРАВИТЬ]
  3. Какая у вас фамилия? Smith [SUBMIT]

Я надеялся использовать это, используя $ PHP_SELF в полях действия моих форм, а также используя метод $ _POST.У вас есть какие-нибудь предложения?Большое спасибо.

Редактировать: Ясность

Ответы [ 2 ]

0 голосов
/ 28 июля 2011

Вы можете использовать сеанс в соответствии с предложением Сенада Мешкина или создать скрытые поля ввода в формах для передачи данных в несколько представлений. Поиграйте с этим кодом и выясните, как он работает.

        <form name="myform" method="post" action="">
  <?php if(!isset($_POST['firstname']))
         {?>
            First Name?
           <input type="text" name="firstname" value="">
  <?php  }
        elseif(!isset($_POST['middlename']))
         {?>
      <input type="hidden" name="firstname" value="<?php echo $_POST['firstname'] ?>">
            First Name? <?php echo $_POST['firstname'] ?><br>
            Middle Name?
            <input type="text" name="middlename" value="">

  <?php  }
        elseif(!isset($_POST['lastname']))
         {?>
      <input type="hidden" name="firstname" value="<?php echo $_POST['firstname'] ?>">
      <input type="hidden" name="middlename" value="<?php echo $_POST['middlename'] ?>">
          First Name? <?php echo $_POST['firstname'] ?><br>
          Middle Name? <?php echo $_POST['middlename'] ?><br>
          Last Name?
         <input type="text" name="lastname" value="">
  <?php  }else{ ?>
      <input type="hidden" name="firstname" value="<?php echo $_POST['firstname'] ?>">
      <input type="hidden" name="middlename" value="<?php echo $_POST['middlename'] ?>">
      <input type="hidden" name="lastname" value="<?php echo $_POST['lastname'] ?>">
          First Name? <?php echo $_POST['firstname'] ?><br>
          Middle Name? <?php echo $_POST['middlename'] ?><br>
          Last Name? <?php echo $_POST['lastname'] ?><br>

  <?php  } ?>

         <input type="submit" name="submitbtn" value="Submit">
        </form>

Конечно, этот код может быть лучше организован в функции, как вы можете видеть, что есть повторяющийся шаблон.

0 голосов
/ 27 июля 2011

Это должно быть

 <?php
     session_start();
     if($_POST['btnOne'])
       $_SESSION['ShowSecond'] = true;
     if($_POST['btnTwo'])
       $_SESSION['ShowThird'] = true;
    ?>
    <form name="formOne">
    ...
    <input type="submit" name="bntOne" value="One">
    </form>
    <?php if(isset($_SESSION['ShowSecond'])) { ?>
    <form name="formTwo">
    ...
    <input type="submit" name="bntTwo" value="Two">
    </form>
    <?php }
    if(isset($_SESSION['ShowThird']))
    {
    ?>
    <form name="formThree">
    ...
    <input type="submit" name="btnThree" value="Three">
    </form>
    <?php } ?>
    ?>

просто сделайте так, чтобы session_start () выполнялся как первая строка в ваших файлах php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...