Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Nie kasowanie danych w formularzu
Sublove
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

Ostrzeżenie: (0%)
-----


Mam dwa problemy

1)

Mam fomularz, dużo w nim pól i ograniczeń.
Kiedy której pole zostanie źle wypełnione to pojawia się komunikat który ustaliłem i ok, ale
wszystkie dane wówczas (po wysłaniu formularza) znikają.
Jak zrobić, żeby po kliknięciu Submit wyświetlał się komunikat że trzeba poprawić któreś pole ale żeby
formularz się nie kasował?

2)

Jak sprawdzić rodzaj wpisanych danych do formularza?
Chcę żeby można było weń wpisać tylko liczby
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Możesz też użyć metody, którą ja w takich przypadkach polecam - zapamiętanie wpisanych do formularza wartości przy pomocy cookies - przydaje się podczas pracy z formularzami wieloetapowymi, z zapamiętywaniem kryteriów wyświetlania/wyszukiwania, stanu koszyka etc. - odciążasz bazę. A najprostsza metoda to:

  1. <?php
  2. //odbiór i walidacja danych
  3. if(!empty($_POST)){
  4.   $dane = $_POST['dane'];
  5.   $do_formularza = ' value="'.$dane.'"';
  6.   $error = walidacja($dane);
  7. }
  8. //gdy są error lub nie wysłano formularza to go wyświetlasz
  9. if(!empty($error) || empty($_POST)){
  10.   $tresc_wyjscie .= '<input type="text" name="dane"'.$do_formularza.'/>';
  11. }
  12. ?>


Walidację najlepiej przeprowadzać w PHP - piszesz w tym celu cały szereg funkcji walidujących, np.
  1. <?php
  2. $efekt_walidacji = czy_poprawna_liczba($liczba);
  3. ?>
- funkcja taka powinna zwracać tablicę, która powinna zawierać:
1. TRUE lub FALSE w zależności od tego, jak poszła walidacja
2. Walidowaną zmienną przystosowaną do dodania do bazy etc.
3. Walidowaną zmienną przystosowaną do użycia w formularzu (czyli value="zmienna")
4. Komunikat błędu (jeśli wystąpił)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 13:45