Доброго времени суток, задача следующая: На 1 странице пользователь вводит номер телефона и почту HTML: <form action="2.php" name="myform" method="post"> <h2>Введите номер телефона:</h2> <input type="text" name="phone" maxlength="11"><br><br> <h2>Введите e-mail адрес:</h2> <input type="text" name="email" maxlength="30"><br><br> <input name="Submit" type=submit value="Отправить данные"> </form> На 2 странице происходит обработка данных с 1 страницы, и форма выбора вида организации (в виде радиокнопок) PHP: <?php $serverMySQL="localhost"; $db="mdk_up"; $dblog="root"; $dbpass=""; $table="inform"; $mi=new mysqli($serverMySQL, $dblog, $dbpass, $db); $mi->set_charset("utf8"); if($mi->connect_errno): die($mi->connect_error); endif; $phone=mysqli_real_escape_string($mi, $_POST['phone']); $email=mysqli_real_escape_string($mi, $_POST['email']); $mi->query("insert into `$table` set `phone`='$phone', `email`='$email'"); $wwid=$mi->insert_id; printf($wwid); ?> <form action="3.php" method="post"> <h2>Выберите вид организации:</h2><br> <input type="radio" name="vidorg" value="1" /> ИП<br /> <input type="radio" name="vidorg" value="2" /> ООО<br /> <input name="Submit" type=submit value="Отправить данные"> </form> На 3 странице обработчик должен внести данные с радиокнопок в строчку БД, пытаюсь это реализовать через UPDATE, но как получить id строки на 3 страницу - не могу понять PHP: <?php $serverMySQL="localhost"; $db="mdk_up"; $dblog="root"; $dbpass=""; $table="inform"; $mi=new mysqli($serverMySQL, $dblog, $dbpass, $db); $mi->set_charset("utf8"); if($mi->connect_errno): die($mi->connect_error); endif; $vidorg=mysqli_real_escape_string($mi, $_POST['vidorg']); $ins_id=mysqli_real_escape_string($mi, $_POST['ins_id']); $mi->query("update `$table` set `vidorg`='$vidorg' where id='$ins_id'"); ?> Собственно, сабж: как получить id строки на 3 страницу?
cookie, сессия, да хоть GET-параметром передавать. Только зачем разбивать форму на несколько страниц? Если полей гораздо больше, чем вы показали, то можно разнести их по табам, при этом оставить в одной форме.
вариантов множество. можно например передавать значение в <input type="hidden"> рассуждая логически, лучше создавать строку в базе только тогда, когда ВСЕ нужные данные собраны и проверены: иначе у нас таблице будут присутствовать записи в которых не все необходимые поля заполнены. самое простое решение — сделать одну форму и манипулируя стилями в каждый момент времени показывать только какую-то её часть. один тег <form>, один обработчик на сервере, один sql insert. а с точки зрения пользователя выглядит как набор последовательных шагов. https://github.com/artoodetoo/formToWizard
Спасибо за советы, делаю как посоветовал artoodetoo. HTML: <form action="add.php" name="myform" method="post"> <div id="1" style="display:block"> <h2>Введите номер телефона:</h2> <input type="text" name="phone" maxlength="11"><br><br> <h2>Введите e-mail адрес:</h2> <input type="text" name="email" maxlength="30"><br><br> <input type="button" onclick="show();" value="Далее"> </div> <div id="2" style="display:none"> <h2>Выберите вид организации:</h2><br> <input type="radio" name="vidorg" value="1" /> ИП<br /><br> <input type="radio" name="vidorg" value="2" /> ООО<br /><br> <input type="button" onclick="show();" value="Далее"> </div> <div id="3" style="display:none;"> <h2>Загрузите документы:</h2><br><br> <input type="file" name="document"><br> <br> <input name="Submit" type=submit value="Отправить данные"> </div> </form> Обработчик вывел в отдельный файл. Остался вопрос о скрытии DIV блоков. Код (Javascript): <script> show.visible = '1'; show.hidden = '2'; function show(){ show.hidden = show.visible; show.visible = (show.visible === '1')?'2':'1'; document.getElementById(show.visible).style.display = 'block'; document.getElementById(show.hidden).style.display = 'none'; } </script> Этим скриптом скрываю 1 блок и вывожу 2. А как быть с 3 блоком? Для него отдельный скрипт нужен или как лучше сделать?