Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sensowna walidacja formularza
Forum PHP.pl > Forum > Przedszkole
dareckiphp
Witam, prośba o pomoc.
Nie wiem jak można zrobić wyświetlanie informacji o niepoprawnym wypełnieniu pół formularza, ale w taki sposób, że dane wpisane do formularza nie kasowały się po wyświetleniu ostrzeżenia.
Walidacje danych robię na zasadzie:
  1. <? 
  2. if (isset($HTTP_POST_VARS['Submit'])) {... 
  3.  if (cos nie spelnione) { 
  4.  print &#092;"uwaga!!!! źle wypełniłeś pole\"; 
  5.  }
  6. ...
  7. }?>

... lub w jaki sposób zrobić aby po wyświetleniu oddzielnej strony z komunikatami, można było się cofnąć do formularza, ale w którym widoczne byłyby dane wprowadzone przez klienta, a nie żeby 200 zdań musiał wprowadzać jeszcze raz jak się pomylił w kodzie pocztowym.

Będę wdzięczny za odpowiedź.
Dzięki
kszychu
Zrób walidację formularza w javascripcie, przed wysłaniem formularza.
dareckiphp
Problem w tym, że nie znam na tyle javascriptów żeby się w nich bawić. Poza tym zrobiłem już wszystkie sprawdzania w php i żal mi wywalać. Czy naprawdę nie mozna zrobić walidacji na poziomie php?
kszychu
JA bym to zrobił (ja to bym użył js'a, ale jak nie to inaczej) tak:
1. wysyłasz formularz
2. odbierasz formularz i jego pola (zmienne), zapisujesz do sesji
3. walidacja ok ? robisz "co potrza"
walidacja nie ok (ale gramatyka ;-)) wywołujesz z powrotem formularz z jakimś parametrem, który "powie mu", że wartości dla pól ma szukać w sesji i przypisze te wartości do pól.

Można jeszcze dodać zaznaczanie tych pól, które były niepoprawne i inne wodotryski.
dareckiphp
Taki też pomysł zaświtał mi jako jedyny do głowy, ale aż włosy sobie rwę że nie mogę po prostu zastosować jakiejkolwiek funkcji, żeby nie ciągnąć nigdzie ze sobą wartości z pół.
mistrzu
  1. <input type=\"text\" name=\"pole\" value=\"<?php echo $_POST['pole']; ?>\">
kszychu
Cytat(mistrzu @ 2004-07-07 11:12:33)
  1. <input type=\"text\" name=\"pole\" value=\"<?php echo $_POST['pole']; ?>\">

Co ty, chcesz wysyłać dane postem DO FORMULARZA?questionmark.gif?
laugh.gif
Yarecki
Cytat(kszychu @ 2004-07-07 12:17:22)
Co ty, chcesz wysyłać dane postem DO FORMULARZA?questionmark.gif?
laugh.gif

Czemu nie ?
Są jakieś przeciwskazania natury praktycznej czy tylko ideologiczne :-) ?
kszychu
Jakoś nie leży mi to w kontekście... Ale zakończmy ten OT.
DeyV
Ja robię to tak

1. generowanie i wyświetlanie formularza
2. sprawdzanie zawartości submitowanego formularza
3. jeśli dane są poprawne - wykonujemy jakąś funkcję do ich obsługi
4. jeśli nie są poprawne - wyświetlamy ponownie formularz, wraz z komunikatami błędów dla każdego pola, oraz dla całego formularza. Pola są oczywiście 'wypełnione'


Wszystko to odbywa się na jednym pliku typu index.php (oczywiście includującym odpowiednie mechanizmy)

Więcej na temat tej filozofii i jej implementacji smile.gif : http://pof.sourceforge.net/
kicaj
Robie podobnie...

@krzychu:
1. mistrzu wysyla wyniki do formularza, tak jak mowi DeyV w pkt. 4.
2. A jesli chcialbym odpalic swoj formularz, ale wyniki przesylam do twojej strony "wynikowej", to js da sie ominac, ja robie zawsze walidacje dzieki php.
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.