Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czyszczenie formularza po wysłaniu danych
Forum PHP.pl > Forum > Przedszkole
S_Olewniczak
Nie wiem jak zrobić, żeby po wysłaniu danych do bazy formularz czyścił mi się automatycznie. Czy ktoś może wie jak to rozwiązać?
Grzyw
Wysyłasz go przez AJAX?
arecki
Jeżeli chodzi o odpowiedź na pytanie to odpowiem że JA wiem smile.gif. Napisz w jaki sposób wysyłasz dane do bazy z formularza a nakieruje Cię na rozwiązanie smile.gif
potreb
Wysyłając ajaxem i tak nie zapamięta, więc po co te pytania.
arecki
Jak sobie oprogramujesz to zapamięta smile.gif A pytania są po to aby bardziej mu pomóc smile.gif
smietek
Jeżeli używasz formularza z HTML, gdy już wykorzystasz dane, przed pokazaniem od nowa formularzu wpisujesz takie coś:
  1. <?php
  2. unset($_POST[nazwa_pola]);
  3. ?>

I tak dla każdego pola.

Jeżeli to ewentualnie nie zadziała (chociaż u mnie działa) możesz też po prostu wstawić do zmiennej $_POST[nazwa_pola] pusty string, czyli:
  1. <?php
  2. $_POST[nazwa_pola] = "";
  3. ?>
S_Olewniczak
Arecki do wysyłania danych z formularza używam następującego kodu:

Kod
print '<div class="naglowek"><b>Klienci</b></div><br>';
print '<div class="naglowekpod"><b>&nbsp;&nbsp;&nbsp;Nowy klient:</b></div><br>';
print '<table cellspacing="10" cellpadding="5" border="0"><tr><td><table cellspacing="10" cellpadding="10" border="1" class="tabela"><tr><td><table cellspacing="10" cellpadding="10" border="1" class="tabela"><form action="prawa.php?akcja=klient" method="POST" onsubmit="nazwaformy.submit();nazwaformy.reset();return false;"><input type="hidden" name="co" value="dodaj"><tr><td><div class="zwyklytekst">Nip: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="nip" size="15" value="'.$_POST['nip'].'"></div><br><div class="zwyklytekst">Nazwa:* <input type="text" name="nazwa" size="15"></div><br><div class="zwyklytekst">Telefon: &nbsp;&nbsp;<input type="text" name="telefon" size="15" value="'.$_POST['telefon'].'"></div><br><div class="zwyklytekst">E-mail: &nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="email" size="15" value="'.$_POST['email'].'"></div><br><div align="right"><input type="submit" value="Zatwierdź"></div></td></tr></form></table></td></tr></table></td></tr></table>';
print '<div class="zwyklytekst">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pola oznaczone * są wymagane.</div>';
if ($_POST['co'] == 'dodaj') {
if ($_POST['nazwa']) {
  $query = "INSERT INTO klienci (nip, nazwa_klienta, telefon_klienta, email) VALUES ('".$_POST['nip']."', '".$_POST['nazwa']."', '".$_POST['telefon']."', '".$_POST['email']."')";
  $wynik = mysql_query ($query);
} else {
print '<script language="JavaScript"><!--
alert("Nie uzupełniono wszystkich pól oznaczonych *. Pola oznaczone * są wymagane.")
//--></script>';
}

Chcę żeby w razie nie uzupełnienia pola "Nazwa" JavaScript zwróciła komunikat o tym braku i pozostałe pola zachowały swoją wartość. Za to po uzupełnieniu pola "Nazwa" wszystkie wartości powinny być dodane do bazy, a cały formularz wyczyścił się.
arecki
Po pierwsze dodaj do <form> atrybut "name" żeby się można było łatwiej odwoływać do niego (no chyba że chcesz się odwoływać po indexach formularzy ale łatwiej jest wtedy się zgubić). Po drugie na zdarzenie onsubmit dodaj sprawdzanie czy dane pole jest wypełnione, czyli coś takiego (z głowy więc nie gwarantuje że działa):
  1. <form name="doWyslania" action="cos.php" method="post"
  2. onsubmit="if(document.forms['doWyslania'].elements['nazwa'].value) { document.forms['doWyslania'].submit(); } else { alert('wypełnij pole nazwa'); return false; } ">
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.