Няколко форми една след друг след изпълнение на заявка

Msecurity

Registered
Здравейте колеги
Да речем че във една страница имам няколко форми за попълване на данни, и те се появяват в момента едновременно.
И въпросът ми е има ли вариант след като попълня едната форма и изпратя инфото в БД-то, да рефрешва страницата и да ми показва 2-рата форма , и т.н.
Мислих мислих ноо нищо не измислих как може да стане :D
 
ами като изпратиш данните, можеш да направиш една сесия която се сетва и пази на коя стъпка си, ако цъкнеш на 1 и си въвел вече данните да те върне на 2, ако не въведе данните в 2 да не го пуска към 3 и т.н., вече като завърши всичко даваш unset(sesiata koqto si pusnal) и се унижощава
 
Може ли едно малко примерче че съ сксран със сесиите, се гледам да ги заместя с нещо :D

Лек и успешен ден колеги ;)
 
PHP:
<?php
if(isset($_SESSION['form_two'])) {
?>
<form id="forma2">
....
<?php
}elseif(isset($_SESSION['form_three'])) {
?>
<form id="form3">
.....
<?php
}else{
?>
<form id="form1">
.....
<?php 
}
?>

При събмит на съответната форма просто задаваш флаг в сесията и си готов (съответно за втората форма и третата, а ако няма флаг тоест за първи път зареждаш страницата се зарежда първата форма).
 
Много по лесно ще е след като си направил проверката дали всичко е минало добре дали се е инсартнало и т.н просто да използваш jquery ефекта .show или html. :) това е мое мнение :)
 
benjikt каза:
Много по лесно ще е след като си направил проверката дали всичко е минало добре дали се е инсартнало и т.н просто да използваш jquery ефекта .show или html. :) това е мое мнение :)

И като рефрешне страницата нали пак всичко ще си е по първоначално зададеното, шерлок.
 
Ако ти върши работа и не е необходима връзка със сървъра, може да направиш следното:

Имаш всички полета, но се виждат само първите, останалите са скрити.

Като натиснеш бутон, изпълняваш .hide() и show() на следващите.

След това правиш същото със втората и третата група и така до края.

Последния бутон вече е submit().

Всичко трябва да бъде в една <form> .. </form>, а отделните полета в дивове които да се показват/скриват.
 
Msecurity каза:
Нещо не ми се получава това със сесиите, изпраща си инфото и пак отново същата форма :S

В php файла сетваш ли флаговете на съответната форма, както вече ти написах? Ако не си, как очакваш да работи?

При събмит, провеляваш коя форма е пратена и слагаш съответния флаг в сесията.

PHP:
if(isset($_POST['submit2'])) {

$_SESSION['form_two'] = 1;
}elseif....
 
:-@ :-@ :-D да всичко съм направил нооо или не става или се накъсва да дава грешки.
Ще може ли да ми дадеш някакъв пример с една форма там от 1 ред колкото да се ориенрам... :S
 
Нали съм ти дал примери по - горе...

index.php

PHP:
<?php

if(isset($_SESSION['form_two'])) {

?>

<form action="step.php" method="post">
<input type="submit" name="submit2" />
</form>

<?php

}else{

?>

<form action="step.php" method="post">
<input type="submit" name="submit1" />
</form>

<?php 

}

?>

step.php

PHP:
<?php
if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
  if(isset($_POST['submit1'])) {
    $_SESSION['form_two'] = 1;
  }
}
?>
 
Нещо не става, ще търся алтернативо но и вината си е моя че не обясних какво искам да направя.
Идеята ми беше следната:
Попълване на информация стъпка по стъпка.
Ето пример: попълваш формата и данните веднага се изпращат в БД, и линка е нещо от сорта на example.com/add.php?step1 , след като изпрати данните и веднага да езвежда формата за втората стъпка и линка да е example.com/add.php?step2 и т.н колкото стъпки има.
Това искам да направя.
 
Моята логика е такава

1.отиваш в /step1 и попълваш формата... при събмит записва в базата данни тази част от инфото от форма 1, като в сесия запазва insert_id и след това пренасочваш с header към /step2 и попълваш 2рата форма... при събмит ъпдейтваш полето с id-то от сесията като добаваш нещата от 2рат а форма и пренасочваш към /step3 и пак ъпдате и така докато всичко не е готово :) Дано си ме разбрал :p
 
Е един файл ще стане с гет на коя форма си... ?form=1...?form=2 и правиш
PHP:
if($_GET['form'] == 1) echo "form 1"
elseif($_GET['form'] == 2) echo "form 2"...
 

Горе