Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] formularz
Forum PHP.pl > Forum > PHP
Angin3
Kiedys dorwalem gotowy formularz na maila i dzialal teraz jednakze chcialbym go rozbudowac i nie wiem co robie zle:

Podstawowa wersja:
  1. <?php
  2. if (empty($_POST['submit'])) {
  3. <form name =\"formularz1\"  action=\"?\" method=\"post\">
  4. <input type=\"checkbox\" name=\"rodzaj\" value=\"indywidualne\">
  5. <input type=\"submit\" name=\"submit\" value=\"Dalej\">
  6. <input type=\"reset\" value=\"Od nowa\"></form>" ;}
  7.  
  8. elseif (($_POST['rodzaj']=='indywidualne')  { echo "działa!";}
  9.  
  10. else echo "Należy zaznaczyc checkbox rodzaj.
  11. Aby powrócić do formularza naciśnij:<input type=\"button\" value=\"WSTECZ\" onClick=\"history.go(-1);\">";
  12. ?>


Takie cos dziala i po odpowiedniej modyfikacji uzupelniam sobie caly formularz a tam gdzie jest Elseif (ktory sprawdza czy wszytko jest wpisane) robie sobie funkcje mail i wysylam formularz tam gdzie chce. Teraz jednak nastapil problem poniewaz formularz jest bardzo rozbudowany i musze sila rzeczy podzielic go na podstorny dlatego chce zrobic takie cos :

Wybieramy rodzaj -> wedle rodzaju pojawiaja sie kolejen tabelki -> pozniej podsumowanie -> wyslij

czyli chce zrobic cos takiego :

  1. <?php
  2.  
  3. //// jezeli nie wcisneito przycisku SUBMIT pokazuje formularz
  4.  
  5. if (empty($_POST['submit']))
  6. {
  7. echo "<form name =\"formularz1\"  action=\"?\" method=\"post\">
  8.         <input type=\"checkbox\" name=\"rodzaj\" value=\"indywidualne\">
  9.         <input type=\"submit\" name=\"submit\" value=\"Dalej\">";
  10. }
  11.  
  12. //// Jezeli wcisnieto i rodzaj = indywidualen przechodzi do drugiej czesci formularza
  13. elseif (($_POST['rodzaj']=='indywidualne')  
  14. {
  15.    ////// Tutaj jest identyczny formularz jak poprzednio wyswietla sie zawartosc do wpisania imienia oraz klikniecia SUBMIT2 ale po kliknieciu wraca mi na strone glowna i nic nie wysyla
  16.     if (empty($_POST['submit2']))
  17.         {
  18.          echo"<form name =\"indywidualne\"  action=\"?\" method=\"post\">
  19.              <input type=\"text\" name=\"imie\">
  20.              <input type=\"submit\" name=\"submit2\" value=\"wyslij\"> ";}
  21.          elseif ($_POST['imie']) { echo "działa"; mail();}
  22.  
  23.          else {echo"nie wpisano imienia";}
  24. }
  25.  
  26. //// jezeli nie zakreslono rodzaju wypisuje blad ze nie wybrano
  27. else echo "Należy zaznaczyc checkbox rodzaj.
  28. Aby powrócić do formularza naciśnij:<input type=\"button\" value=\"WSTECZ\" onClick=\"history.go(-1);\">";
  29. ?>


To co napisalem to tylko szablon tak naprawde mam tam duzo wiecej tresci...

Prosze o pomoc!
Pawel_W
po 1, nie utrudniaj sobie życia - zamiast robić coś takiego
  1. <?php
  2. <form name =\"formularz1\"  action=\"?\" method=\"post\">
  3. <input type=\"checkbox\" name=\"rodzaj\" value=\"indywidualne\">
  4. <input type=\"submit\" name=\"submit\" value=\"Dalej\">
  5. <input type=\"reset\" value=\"Od nowa\"></form>" ;}
  6. ?>

zrób tak:
  1. <?php
  2. <form name ="formularz1"  action="?" method="post">
  3. <input type="checkbox" name="rodzaj" value="indywidualne">
  4. <input type="submit" name="submit" value="Dalej">
  5. <input type="reset" value="Od nowa"></form>' ;}
  6. ?>


a po 2 nie napisałeś co mamy zrobić...

edit:
a po 3 tu jest błąd:
  1. <?php
  2. elseif (($_POST['rodzaj']=='indywidualne')
  3. ?>

brak )
Angin3
wiem ze tam jest blad poniewaz chcialem przepisac tylko koncepcje


Chodzi o to ze mam formularz w ktorym wybiera sie najpierw rodzaj zgloszenia -> indywidualne lub grupiowe -> nastepnie zaleznie od wyboru otwiera sie nowy formularz w ktorym sa do wypelnienia dane i guzik do wyslania zawartosci mailem

To co napisałem wydaje mi sie dobre tylko że guzik SUBMIT2 nie przekierowuje mnie do kolejnego elseif . Zachwile postaram sie lepiej napisac zrodlo kodu.
Pawel_W
zamiast robić takie mecyje to dodaj po prostu $_GET do formularza i potem prosty switch...
Angin3
A czy mogłbys napisac mi szablon jak to ma dzialac to ja wtedy postaram sie go przeanalizowac i wykozystac w moim problemie?

Bylbym bardzo wdzieczny
Pawel_W
prosze bardzo
  1. <?php
  2.  
  3. switch ($_GET['go'])
  4. {
  5. default:
  6. echo "<form name =\"formularz1\"  action=\"?go=kolejny\" method=\"post\">
  7.        <input type=\"checkbox\" name=\"rodzaj\" value=\"indywidualne\">
  8.        <input type=\"submit\" name=\"submit\" value=\"Dalej\">";
  9. break;
  10. case 'kolejny':
  11.         echo"<form name =\"indywidualne\"  action=\"?go=kolejny_kolejny\" method=\"post\">
  12.             <input type=\"text\" name=\"imie\">
  13.             <input type=\"submit\" name=\"submit2\" value=\"wyslij\"> ";
  14. break;
  15. case 'kolejny_kolejny':
  16. // itd...
  17. break;
  18. }
  19. ?>
Angin3
Cały system switcha jest swietny dorobilem tam jednego IFa w wyborze zgloszenia i wszystko przechodzi tak jak powinno jest tylko jeden problem

Zmienne przechodza tylko raz, za drugim razem juz ich nie ma czyli. Pewnikiem odpowiedz czy tez sposob jest prosty ale nie jestem na tyle ogarniety zeby na niego wpasc...

1Formularz (zmienna $imie) -> go?=kolejne (zmienna $imie sie wyswietla) -> go?kolejne_kolejne (zmienna $imie sie nie wyswietla)

Domyslam sie ze to dlatego iz post wysyla tylko raz te zmienne do kolejnego case'a. Co z tym fantem?
Quantum
Jeśli dobrze zrozumiałem przy wysyłaniu kolejnego formularza ten gubi twoje dane z poprzedniego. Możesz zastosować sesje, albo prościej w tym kolejnym formularzu (dla przykładu gdy $_POST['var'] to zmienna z poprzedniego formularza) do kolejnego wklejasz to
  1. <?php
  2. echo '<input name="var" type="hidden" value="'.$_POST['var'].'">';
  3.  
  4. ?>


napisz czy o to chodziło
Angin3
Super pomoglo czyli takie przekopiowanie spowrotem zawartosci wczesniejszej i zduplikowanie jej dla potrzeby nastepnego formularza. moze to i nie optymalne ale na te pare zmiennych wystarczy! to ide to wszystko ogarnac i chyba uda mi sie skonczyc jak cos to jeszcze napisze winksmiley.jpg napewno!

Dzieki Wielkie!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.