Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Fromularz Kontaktowy : Komunikat o wysłaniu wiadomości bez przeładowania strony
Forum PHP.pl > Forum > Przedszkole
Altaro
Witam. Pewnie ktoś napisze że słabo szukałem ale tak nie było wink.gif Nie doszukałem się możliwości zrobienia komunikatu formularza kontaktowego, który po wysłaniu wiadomości, pokazywał by komunikat "Wiadomość została wysłana" bądź "Wiadomość nie została wysłana" , bez przeładowania strony, a najlepiej w nad wiadomością...

na tą chwilę wygląda to tak:
  1. <?php
  2.  
  3. // Tworzymy zmienną dla imienia i nazwiska
  4. $name = $_POST['name'];
  5.  
  6. // Tworzymy zmienną dla adresu email
  7. $email = $_POST['email'];
  8.  
  9. // Tworzymy zmienną dla tematu
  10. $temat = $_POST['temat'];
  11.  
  12. // Tworzymy zmienną dla wiadomości
  13. $message = $_POST['message'];
  14.  
  15. // Podajesz adres email z którego ma być wysłana wiadomość
  16. $odkogo = "kontakt@pc-pogotowie.cba.pl";
  17.  
  18. // Podajesz adres email na który chcesz otrzymać wiadomość
  19. $dokogo = "kamilnowakldz@gmail.com";
  20.  
  21. // Podajesz tytuł jaki ma mieć ta wiadomość email
  22. $tytul = "Komputerowe Pogotowie Ratunkowe";
  23.  
  24. // Przygotowujesz treść wiadomości
  25. $wiadomosc = "";
  26. $wiadomosc .= "Imie i nazwisko: " . $name . "\n";
  27. $wiadomosc .= "Email: " . $email . "\n";
  28. $wiadomosc .= "Temat: " . $temat . "\n";
  29. $wiadomosc .= "Wiadomość: " . $message . "\n";
  30.  
  31. // Dodajemy UTF-8 do naglowka naszej wiadomości
  32. $naglowek = "kontakt@pc-pogotowie.cba.pl";
  33. $naglowek .= "Od:" . $odkogo . " \n";
  34. $naglowek .= "Content-Type:text/plain;charset=utf-8";
  35.  
  36. // Wysyłamy wiadomość
  37. $sukces = mail($dokogo, $temat, $wiadomosc, $naglowek);
  38.  
  39. //Przekierowywujemy na potwierdzenie
  40. if ($sukces){
  41. print "<meta http-equiv=\"refresh\" content=\"0;Wysłane\">";
  42. }
  43. else{
  44. print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
  45. }
  46. ?>


Po prostu z braku wiedzy nie wiem jak zrobić potwierdzenie.... zapewne będzie trzeba to zrobićw AJAX... tylko nie wiem jak.... Proszę o pomoc.
Altaro
hmm.. nie bardzo wiem jak się do tego zabrać.
aras785
Pisane z palca. Proszę sprawdzić czy coś takiego działa:

PHP (sendmail.php):

  1. <?php
  2.  
  3. // Tworzymy zmienną dla imienia i nazwiska
  4. $name = $_POST['name'];
  5.  
  6. // Tworzymy zmienną dla adresu email
  7. $email = $_POST['email'];
  8.  
  9. // Tworzymy zmienną dla tematu
  10. $temat = $_POST['temat'];
  11.  
  12. // Tworzymy zmienną dla wiadomości
  13. $message = $_POST['message'];
  14.  
  15. // Podajesz adres email z którego ma być wysłana wiadomość
  16. $odkogo = "kontakt@pc-pogotowie.cba.pl";
  17.  
  18. // Podajesz adres email na który chcesz otrzymać wiadomość
  19. $dokogo = "kamilnowakldz@gmail.com";
  20.  
  21. // Podajesz tytuł jaki ma mieć ta wiadomość email
  22. $tytul = "Komputerowe Pogotowie Ratunkowe";
  23.  
  24. // Przygotowujesz treść wiadomości
  25. $wiadomosc = "";
  26. $wiadomosc .= "Imie i nazwisko: " . $name . "\n";
  27. $wiadomosc .= "Email: " . $email . "\n";
  28. $wiadomosc .= "Temat: " . $temat . "\n";
  29. $wiadomosc .= "Wiadomość: " . $message . "\n";
  30.  
  31. // Dodajemy UTF-8 do naglowka naszej wiadomości
  32. $naglowek = "kontakt@pc-pogotowie.cba.pl";
  33. $naglowek .= "Od:" . $odkogo . " \n";
  34. $naglowek .= "Content-Type:text/plain;charset=utf-8";
  35.  
  36. // Wysyłamy wiadomość
  37. $sukces = mail($dokogo, $temat, $wiadomosc, $naglowek);
  38.  
  39. //Przekierowywujemy na potwierdzenie
  40. if ($sukces){
  41. echo 1;
  42. }
  43. else{
  44. echo 0;
  45. }
  46. ?>

HTML:

  1. Imię naziwsko: <input type="text" name="form_name"/><br/>
  2. Email: <input type="text" name="form_email"/><br/>
  3. Temat: <input type="text" name="form_temat"/><br/>
  4. Wiadomość: <input type="text" name="form_message"/><br/>
  5. <button id="send">Wyślij</button>



JS:

  1. $(function())
  2. {
  3. $('#send').click(function(){
  4. //sprawdz czy wszystkie pola sa poprawne - uzupelnione itd.
  5. //jesli wszystko ok to wysylamy post
  6.  
  7. var form_name = $('input[name=form_name]').val();
  8. var form_email = $('input[name=form_email]').val();
  9. var form_temat = $('input[name=form_temat]').val();
  10. var form_message = $('input[name=form_message]').val();
  11.  
  12. $.post( "sendmail.php", { name: form_name, email: form_email, temat: form_temat, message: form_message })
  13. .done(function(result) {
  14. if(result==1)
  15. {
  16. alert('Wiadomość została wysłana');
  17. }else
  18. {
  19. alert('Blad przy wysylaniu wiadomosci');
  20. }
  21. //czyscimy formularz
  22. $('input[name=form_name]').val('');
  23. $('input[name=form_email]').val('');
  24. $('input[name=form_temat]').val('');
  25. $('input[name=form_message]').val('');
  26. });
  27. });
  28. }
Altaro
Formularz zostaje wysłany na e-maila ale strona zostaje przeładowana na pustą z treścią "1"

Może brakuje mi jakieś biblioteki w head?
Kshyhoo
Przenoszę do Przedszkola.
com
A Jquery masz?
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.