Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] formularz
Forum PHP.pl > Forum > Przedszkole
suchy1
Witam
Czy dzieki operatorowi switch i action="main.php?action=reg" moge ustawic np.
  1. <?php
  2. $g = $_GET['reg'];
  3.  
  4. switch($g){
  5. case 1:
  6.  
  7. pierwsza strona;
  8.  
  9. break;
  10.  
  11. case2:
  12.  
  13. druga strona;
  14.  
  15. break;
  16. }
  17. ?>


i teraz zmieniajac na poszczegolnych formularzach main.php?action=start albo main.php?action=meta odsylac do innych case ? to jest mozliwe ale u mnie to nie dziala? formularz wysyla najpierw zmienne formularza a jakby zapominal o main.php?action=reg. Jest jakis sposob aby to ominac? Z gory dzieki za pomoc
lopez86
Nie wiem czy nie powinieneś dać $G = $_POST['action']; tongue.gif

sory nie post tylko $g=$_GET['action'];
suchy1
to nie to:

  1. <?php
  2. include('./'."settings.php"); // Ładowanie ustawień
  3.  
  4. $q = $_GET['action'];
  5.  
  6. switch($q){
  7. case reg:
  8. echo 'OK';
  9. break;
  10.  
  11. default:
  12. echo "blad";
  13. break;
  14. }
  15.  
  16. ?>


  1. <u>Wypełnij formularz rejestracyjny!</u><br><br>
  2. <form name="one" action="main.php?action=reg" method="GET">
  3. <table border=0>
  4. <tr>
  5. <td><p align="right">Login:</p></td>
  6. <td><input style="border: 1px solid #C3C3C3; width: 165px;" type="text" name="login_reg" maxlength="10" />@opencode.pl</td>
  7. </tr>
  8. <tr>
  9. <td><p align="right">Hasło:</p></td>
  10. <td><input style="border: 1px solid #C3C3C3; width: 165px;" type="password" name="pass_reg" maxlength="10" />(max 10 znaków)</td>
  11. </tr>
  12. <hr color="silver" width="50%"><br><br>
  13. <tr>
  14. <td><p align="right">Imię:</p></td>
  15. <td><input style="border: 1px solid #C3C3C3; width: 165px;" type="text" name="name_reg" maxlength="20" /></td>
  16. </tr>
  17. <tr>
  18. <td><p align="right">Nazwisko:</p></td>
  19. <td><input style="border: 1px solid #C3C3C3; width: 165px;" type="text" name="surname_reg" maxlength="30" /></td>
  20. </tr>
  21. </table><br><br>
  22. <input type="submit" value="Załóż konto!" name="accept" />
  23. </form>
  24. </body>
  25. </html>


Wedglu action="main.php?action=reg" i moich skryptow powinno wyswietlic mi napis OK a tego nie robi, switch dobrze jest skonstruowany...
lopez86
Wyjaśnij mi od czego ma zeleżeć z punktu widzenia strony html z rejestracją czy ma wysłać action=reg bo można by hiddena zrobić i jeżeli chodzi np. o spełnienie jakiś warunków to można to javiescript napisać , bo tak nie zrobisz , jeżeli dajesz action w formie już zapytaniem smile.gif

  1. <script type="text/javascript">
  2.  
  3. if(document.getElementById('id pola z formy').value=czemus innemu np innemu polu czyli np. hasła identyczne){
  4.  
  5. document.write("<input type=\"hidden\" name=\"action\" value=\"reg\">");
  6.  
  7. }
  8.  
  9.  

Mam nadziję że ci to pomoże, oczywiści skrypt wstawiasz jeszcze w formie POZDRO
suchy1
chodzi mi o to ze kazda strona bedzie miala inny main.php?action=reg dzieki temu poleci do innego case(switch). Chce miec wszystkie polecenia w jednym pliku tak aby wszystkie formularze korzystaly z jednego pliku. Problem w tym ze jakos switch tego nie lapie sad.gif
lopez86
no to chyba pozostaje ci zrobić to na hiddenach dla każdej z podstron innego , inaczej tego nie widze , może da się ale ja takiego sposobu nie znam , najprościej daj hiddena zamiast w action dopisuj zmienne smile.gif
suchy1
lopez86: nie rozumiem, co to jest hidden i mam pominac zmienna w action ? dry.gif
Kicok
Formularz wysyłasz metodą GET, więc pola z formularza nadpisują ci: action="main.php?action=reg". Rozwiązania:

1. Wywal tą zmienną z action'a formularza i dodaj nowe pole:
  1. <input type="hidden" name="action" value="reg" />


2. Zmień tryb wysyłania danych z formularza na POST
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.