Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z formularzem
Forum PHP.pl > Forum > Przedszkole
micbuc
Witam wszystkich,

Urodził mi się taki problem... Otóż mam kilka plików:
formularz.php

Kod
if (!isset($action)) {
    $action="display";
}
    
switch ($action) {

    case "display":
  include "frame.html";
    break;
    
    case "add":
  include "add.php";
    break;
}

frame.html:
Kod
<form mehod="post" action="formularz2.php?action=add">
<input name="nazwa" type="text"/>
<input type="submit" value="dodaj">
</form>

oraz add.php:
Kod
if ($name=="")  {
print "uzupełnij";}
else {
print "ok";}

I mój problem\pytanie: czemu mi to nie działa, tzn: czemu wypełniając lub pozostawiając wolnego textfielda nie ma żadnej reakcji??
Z góry dzięki za wszystkie podpowiedzi i sugestie.
zbig13
Nie działa pewnie dlatego, że masz wyłączoną opcję register_globals, a do zmiennych przesyłanych metodą GET i POST odnosisz się przez samą nazwę. Powinieneś zrobić tak:

formularz.php
  1. <?php
  2.  
  3. if (!isset($_GET['action'])) { // Sprawdzenie, czy istnieje zmienna action (w pasku adresu zmienne przesyłane są metodą GET, dlatego musi być $_GET[])
  4. $action="display";
  5. } else {
  6. $action = $_GET['action'];
  7. }
  8.  
  9. switch ($action) {
  10.  
  11. case "display":
  12.  include "frame.html";
  13. break;
  14.  
  15. case "add":
  16.  include "add.php";
  17. break;
  18. }
  19.  
  20. ?>



add.php
  1. <?php
  2.  
  3. if ($_POST['name']=="") { // Musi być $_POST, bo ustawiłeś w formularzu, że będziesz przesyłał metodą POST (<form method="post">)
  4. // IMO lepiej zrobić tak:
  5. // if (empty($_POST['name']))
  6. print "uzupełnij";
  7. } else {
  8. print "ok";}
  9.  
  10. ?>


Do kodu php używaj tagów [ php ][/ php ], a nie [ code ] smile.gif

Pozdrawiam,
Zbig
hwao
Uzywaj $_POST/$_GET - te wsszytkie kursy co o tym nie pisza powinny zostac usuniete;)

Kod
form mehod="post"

z takiego formularz odbiera sie dane $_POST['nazwaInputa']

z adrestu strona.pl?cos=cos2
$_GET['cos']; // ma wartosc cos2
micbuc
Zbig13 dziękuję, Hwao również smile.gif
Niestety Wasze podpowiedzi na niewiele mi się zdały.
Opcję register_globals mam włączoną, także chyba to nie tego wina.
Wciąż do adresu strony przesyła mi się tylko formularz.php?nazwa=

Jakieś sugestie ?
THX
Qvazar
zamień frame.html na coś takiego

Kod
<form mehod="post" action="formularz2.php">
<input name="nazwa" type="text"/>
<input type="submit" value="dodaj">
<input type="hidden" name="action" value="add"/>
</form>
hwao
no tak, glupi ja;) nie zauwazylem literowki method

Poprawione smile.gif
  1. <form method="post" action="formularz2.php?action=add">
Qvazar
popraw jeszcze w add.php nazwe zmiennej $name na $nazwa bo taką przesyłasz w formularzu
micbuc
uff, dziękować, dziękować, najgorsze są literówki winksmiley.jpg
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.