Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czyszczenie formularza po wysłaniu i sprawdzeniu
agapart
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.04.2010

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


Witam

Zrobiłam formularz kontaktowy na stronę. Skorzystałam z porad z jakiegoś forum. Wszystko działa. Sprawdza on czy wszystkie dane zostały wpisane. Jeśli nie zostały, to wyświetla komunikat, żeby uzupełnić dane. Jeśli wszystko zostało wypełnione, to wysyła maila.
Pierwsze:
Po wysłaniu maila pojawia się pusta strona, do której mogę ewentualnie za pomocą echo podać napis typu Dziękujemy za wysłanie maila itp.
Ja chciałabym, żeby podziękowanie za wysłanie maila pojawiało się np. zamiast napisu *Pola wymagane. Bądź gdzieś wyżej nad formularzem.

Drugie:
Chciałabym, żeby po wysłaniu maila, gdy już wszystkie dane są sprawdzone oraz po odśwież, czyściło wypełniony formularz. Bo gdy robię odśwież, to wpisane dane zostają. A nie chcę, żeby ktoś złośliwy przysyłał mi 1000 maili dziennie (IMG:style_emoticons/default/winksmiley.jpg) Mam teraz na

onSubmit="return validate.check(this)" Czyli zawsze sprawdza gdy są błędy.

Gdy dodam do tego:

"nazwaformy.submit();nazwaformy.reset();return false;" to wtedy najpierw sprawdzi mi czy dane są wpisane, jeśli nie to wyskoczy komunikat, że nie. Ale gdy na komunikacie z błędem kliknę OK, to i tak wysyła. Nie sprawdza wtedy tych pól czy są wypełnione.

Nie znam się za bardzo na php. Szukałam po różnych forach, ale nie mogę znaleźć.


Mój formularz kontaktowy:
  1. <form action="wyslij.php" method="post" name="formcontact" id="formcontact" onSubmit="return validate.check(this)">
  2. <table width="310"><tr><td colspan="0" align="left" valign="top"><table width="310" >
  3. <tr>
  4. <td colspan="0" align="left" valign="top"><p style="text-align:left"><span class="style48">* wymagane</span></p></td>
  5. </tr>
  6. <tr>
  7. <td width="80" valign="top" ><label for="Nazwa">Nazwa*</label></td>
  8. <td width="230" valign="top" ><input type="text" name="Nazwa" id="Nazwa" maxlength="50" style="width:230px" /></td>
  9. </tr>
  10. <tr>
  11. <td valign="top" ><label for="Email">E-mai*</label></td>
  12. <td valign="top" ><input type="text" name="Email" id="Email" maxlength="50" style="width:230px" /></td>
  13. </tr>
  14. <tr>
  15. <td valign="top" ><label for="Temat">Temat</label></td>
  16. <td valign="top" ><input type="text" name="Temat" id="Temat" maxlength="50" style="width:230px" /></td>
  17. </tr>
  18. <tr>
  19. <td width="80" valign="top" ><label for="Tresc">Treść*</label></td>
  20. <td valign="top" ><textarea style="width:230px;height:120px" name="Tresc" id="Tresc" maxlength="2000"></textarea></td>
  21. </tr>
  22. <tr>
  23. <td height="30" colspan="2" style="text-align:center"><span style="text-align:center"><span style="text-align:center"><span style="text-align:center">
  24. <label><span style="text-align:right"><span style="text-align:right"><span style="text-align:right"><span style="text-align:right">
  25. <input type="reset" name="Reset" id="button" value="WYCZYŚĆ" />
  26. </span></span></span></span></label>
  27. <input name="Submit" type="submit" value="WYŚLIJ" />
  28. </span></span></span></td>
  29. </tr>
  30. </table><p style="text-align:left"> </p>
  31. </td>
  32. </tr>
  33. </table>
  34. </form>


Mój plik wyslij.php
  1. <?php
  2.  
  3. $wiadomosc =
  4. "Imie: ".$_POST['Nazwa']."
  5.  
  6. e- mail: ".$_POST['Email']."
  7.  
  8. temat: ".$_POST['Temat']."
  9.  
  10. Tresc: ".$_POST['Tresc']." ";
  11.  
  12. $tematyka = "E-mail ze strony NAZWA STRONY ".$temat;
  13.  
  14. mail ("mail@wp.pl", $tematyka, $wiadomosc );
  15. ?>




moj plik do sprawdzania:
  1. function has_id(id){try{var tmp=document.getElementById(id).value;}catch(e){return false;}
  2. return true;}
  3. function has_name(nm){try{var tmp=cfrm.nm.type;}catch(e){return false;}
  4. return true;}
  5. function $$(id){if(!has_id(id)&&!has_name(id)){alert("Pole "+id+" nie jest wypelnione!\n Blad formularza.");return false;}
  6. if(has_id(id)){return document.getElementById(id).value;}else{return;}}
  7. function $val(id){return document.getElementById(id);}
  8. function trim(id){$val(id).value=$val(id).value.replace(/^\s+/,'').replace(/\s+$/,'');}
  9. var required={field:[],add:function(name,type,mess){this.field[this.field.length]=[n
  10. ame,type,mess];},out:function(){return this.field;},clear:function(){this.field=[];}};var validate={check:function(cform){var error_message='Prosimy uzupełnić pola:\n\n';var mess_part='';var to_focus='';var tmp=true;for(var i=0;i<required.field.length;i++){if(this.checkit(required.field[i][0],required.fiel
  11. d[i][1],cform)){}else{error_message=error_message+required.field[i][2]+' - pole jest blednie wypelnione.\n';if(has_id(required.field[i][0])&&to_focus.length===0){to_focus=required.field[i][0];}
  12. tmp=false;}}
  13. if(!tmp){alert(error_message);}
  14. if(to_focus.length>0){document.getElementById(to_focus).focus();}
  15. return tmp;},checkit:function(cvalue,ctype,cform){if(ctype=="NOT_EMPTY"){if(this.trim($$(cvalue)).length<1){return false;}else{return true;}}else if(ctype=="EMAIL"){exp=/^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;if($$(cvalue).match(exp)==null){return false;}else{return true;}}},trim:function(s){if(s.length>0){return s.replace(/^\s+/,'').replace(/\s+$/,'');}else{return s;}}};



I jeszcze mały fragment w head:
  1. <script src="lite_validation.js"></script>
  2. <script>
  3. required.add('Nazwa','NOT_EMPTY','Nazwa');
  4. required.add('Email','EMAIL','Email');
  5. required.add('Tresc','NOT_EMPTY','Tresc')
  6. </script>



Z góry dziękuję za pomoc.

Pozdrawiam
Aga

Ten post edytował agapart 6.04.2010, 14:06:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Daiquiri
post
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Ad. "pierwsze"
To formularz przenosi Cię do innej podstrony (action="wyslij.php") - jeżeli chcesz na niej pozostać musisz zmienić parametr action na np. nazwę strony na której umieściłaś formularz (IMG:style_emoticons/default/smile.gif) . Pamiętaj, że zawartość pliku wyslij.php musisz w takim układzie przenieść do pliku z formularzem, pamiętając o tym, że plik musi mieć rozszerzenie *php.

Ad. "drugie"
Po wysłaniu zmiennych musisz je "wyczyścić".

Ten post edytował Daiquiri 6.04.2010, 13:54:02
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: 13.10.2025 - 14:30