Анкета на PHP. Постараничное заполнение (шаг за шагом) и отправка.

inside22

Новичок
Анкета на PHP. Постараничное заполнение (шаг за шагом) и отправка.

Здравствуйте уважаемые!
Помогите мне пожалуйста создать пошаговую форму-анкету на PHP.

То есть,

1 страница:

Имя.
Фамилия.
Отчество.

кнопка дальше =>

2 страница:
Мобильный телефон.
Домашний телефон.
Адрес.

кнопка дальше =>

3 страница:
Страна.
Город.
Село.

<= Отправить на мыло =>

===
Чтоб после заполнения первой страницы, посетитель переходил на вторую и заполнял дальше. А после третей страницы, у меня будет отсылка на мыл.

===
Вот у меня есть пример кода, но я не могу реализовать переход на вторую страницу :-(


PHP:
<?php

  if(@$_GET['step'])  
    $step = $_GET['step'];  
  else $step = 1;  
 
  if($step == 1)  
   
  {  

    echo "<FORM action=\"".$_SERVER['PHP_SELF']."\">\n"; 
    echo "<p>Имя<br /><input type=\"text\" name=\"Name\" value=\"$name\"/></p>"; 
    echo "<p>Фамилие<br /><input type=\"text\" name=\"Name\" value=\"$surname\"/></p>"; 
    echo "<p>Отчество<br /><input type=\"text\" name=\"Name\" value=\"$patronymic\"/></p>"; 
    echo "<INPUT type=submit value='".$_GET['id']."'>\n"; 
 
  }  
 
  if($step == 2)  
  {  
    print "Hi. $name!. Your patronymic is $patronymic";  
  }  
 
  if($step == 3)  
  {  
    // Третий и так далее  
  }  
 
?>
 

Nest

Новичок
Элементарно, сабмить каждую страницу и записуй результаты заполнения в базу данных, после последнего шага, выгрибай все данные с таблицы, вставляй в письмо и отсылай
 

inside22

Новичок
Уважаемые, если бы я знал бы как это сделать...
Я же за тем к Вам обращаюсь, что не знаю!

Элементарно, я кнопку даже как то не правильно подвесил.

echo "<INPUT type=submit value='".$_GET['id']."'>\n";


Не переходит на вторую страницу!
 

ybilevych

Новичок
1. Для отправки формы использовать метод POST
2. Свойство name каждого элемента ввода должно быть уникальным
3. Для обозначения шага в форме выводить хидден поле step
4. Значения получать $_POST['значение свойства name элемента ввода']
5. Все полученные данные сохранять в сессии
 

die_hard

Новичок
не знаю испугает это тебя или нет но тебе точно нужен

PEAR-овский HTML_Quickform_Controller - http://pear.php.net/package/HTML_QuickForm_Controller
 

Гриша К.

Новичок
inside22

Вам дали подсказку по поводу скрытого поля, но вы конечно же его не поняли (наверное вы недавно программируете) и сессии возможно вам пригодились бы (ищите в мануале session_start() и т.д.)

PHP:
// Вместо @ используйте isset или empty
$step = (isset($_GET['step'])) ? $_GET['step'] : 1;  
$id = (isset($_GET['id'])) ? $_GET['id'] : ''; 
  
if($step == 1)    
{ 
echo "<FORM action=\"".$_SERVER['PHP_SELF']."\" method="GET">\n";  // Добавлен метод отправки данных
echo "<INPUT type=\"hidden\" name="step" value=\"".$id."\">\n";  // Добавлено скрытое поле для передачи $id
echo "<p>Имя<br /><input type=\"text\" name=\"Name\" value=\"$name\"/></p>"; 
echo "<p>Фамилие<br /><input type=\"text\" name=\"Name\" value=\"$surname\"/></p>";  
echo "<p>Отчество<br /><input type=\"text\" name=\"Name\" value=\"$patronymic\"/></p>";  
echo "<INPUT type=submit>\n"; // здесь значение (value) не передается
echo "</FORM>\n"; // добавлен закрывающий тэг формы
}
 

inside22

Новичок
SiMM
Собираюсь!
Только мне еще нужно сделать без перезагрузки (то есть чтоб переходов не было таких index_1.php потом index_2.php), потому что я буду внедрять этот скрипт в CMS, в статическую страницу!

Один фрилансер в принципе мне уже прислал скрипт!
Сейчас буду смотреть что к чему...

P.S. Ввиду того, что время поджимает, а знания мои не позволяют сделать это дело быстро, я вынужден обратиться к фрилансерам!
 

eps

Новичок
Я бы элементарно сделал через JavaScript+PHP. Тогда всё заполняется по сути на одной странице (anketa.php). По нажатии отправить - обработка. Можно даже в этом же файле. Ничего сложного.
 

ТопольМ

Новичок со стажем
какой аякс, js???
человек второй раз в жизни о пхп слышит!
Panchous зачОт!

-~{}~ 20.06.06 18:06:

SiMM харош!
 
Сверху