Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czyszczenie formularza po wysłaniu i sprawdzeniu
agapart
post 6.04.2010, 13:19:36
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 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

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 07:25