Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz - validacja
Forum PHP.pl > Forum > XML, AJAX
Moodey
Witam,

Mam problem z formularzem. Otóż muszę dodać checkbox do już istniejącego formularza. Problemem jest jego zagnieżdżenie we wcześniej napisanym kodzie jQuery współpracującym z plikiem php. Nie wiem jak zrobić by ten checkbox zwracając poprawną informację nie wymuszał przejścia do pliku php (nowe białe okno o tresci "1").
Obecnie stanąłem w punkcie albo zwracania przez formularz odpowiedniej treści i przechodzenia do pliku php zamiennym ze zwracaniem złej informacji ale poprawnym działaniu wizualnym owego formularza.

Mówiąc wprost to chce aby przy zaznaczonym checboxie przechodziła informacja "Wyrażam zgodę", a przy odznaczonym "Nie wyrażam zgody" - potrzebuje pomocy bo sam napotkałem na mur.

  1. <form action="send.php" method="post" class="foot-form">
  2.  
  3.  
  4. <div>
  5. <input name="name" id="name" type="text" value="imię *" />
  6. </div>
  7. <div>
  8. <input name="nazwisko" id="nazwisko" type="text" value="nazwisko" />
  9. </div>
  10. <div>
  11. <input name="telefon" id="telefon" type="text" value="telefon" />
  12. </div>
  13. <div>
  14. <input name="email" id="email" type="text" value="e-mail *" />
  15. </div>
  16.  
  17. <div>
  18. <textarea name="message" id="message" cols="5" rows="5" >treść wiadomości *</textarea>
  19. </div>
  20. <div>
  21. <input name="newsletter" id="newsletter" type="checkbox" checked="checked" />
  22. <label>*Zapisz się na bezpłatny Newsletter</label>
  23. </div>
  24.  
  25. <div>
  26. <div class="sending">Wysyłanie...</div>
  27. <div class="message-sent">Wiadomość wysłana.</div>
  28. </div>
  29.  
  30. <div>
  31. <input type="submit" name="submit" id="submit" value="Wyślij wiadomość" />
  32. </div>
  33.  
  34. </form>


[JAVASCRIPT] pobierz, plaintext
  1. var inputs = new Array();
  2.  
  3. inputs["name"] = "imię *";
  4. inputs["nazwisko"] = "nazwisko";
  5. inputs["telefon"] = "telefon";
  6. inputs["email"] = "e-mail *";
  7. inputs["message"] = "treść wiadomości *";
  8. inputs["newsletter"];
  9.  
  10. $("#name,#nazwisko,#telefon,#email,#message").focus(function()
  11. {
  12. if(
  13. $(this).val()==inputs[$(this).attr("id")])
  14. $(this).val("");
  15. }).blur(function()
  16. {
  17. if($(this).val()=="")
  18. $(this).val(inputs[$(this).attr("id")]);
  19. });
  20.  
  21.  
  22. $("#submit").click(function()
  23. {
  24. name = $("#name").val();
  25. nazwisko = $("#nazwisko").val();
  26. telefon = $("#telefon").val();
  27. email = $("#email").val();
  28. message = $("#message").val();
  29. newsletter = $("#newsletter");
  30. var mail_match =/^[^@]+@[^@]+.[a-z]{2,}$/;
  31.  
  32. if((email.search(mail_match) == -1))
  33. {
  34. alert("Proszę podać poprawny adres e-mail");
  35. return false;
  36.  
  37. }
  38. if (name == '' || name == 'imię' || message == 'treść wiadomości' || message == ''){
  39. alert('Musisz podać imię i treść wiadomości...');
  40. return false;
  41. }
  42.  
  43. else
  44. {
  45. $(".sending").slideDown();
  46. $.ajax({
  47. url: "send.php",
  48. type: "POST",
  49. data:
  50. {
  51. name: name,
  52. nazwisko: nazwisko,
  53. telefon: telefon,
  54. email: email,
  55. message: message,
  56. newsletter: newsletter
  57. },
  58. success: function(data)
  59. {
  60. if(data == true)
  61. {
  62. $(".sending").slideUp();
  63. $(".message-sent").slideDown();
  64. }
  65. else
  66. {
  67. alert("Wstąpił błąd podczas wysyłania wiadomośc. Proszę spróbować ponownie.");
  68. }
  69. }
  70. });
  71. return false;
  72. }
  73.  
  74.  
  75. });
[JAVASCRIPT] pobierz, plaintext


  1. <?php
  2.  
  3.  
  4.  
  5. // zmienne przesłane przez AJAX metodą POST
  6. $Name = $_POST['name'];
  7. $Nazwisko = $_POST['nazwisko'];
  8. $Phone = $_POST['telefon'];
  9. $SenderEmail = $_POST['email'];
  10. $MailContent = $_POST['message'];
  11. $Newsletter = $_POST['newsletter'];
  12. $TargetEmail = "example@mail.pl";
  13.  
  14.  
  15. if (isset($_POST['newsletter']))
  16. {
  17. if ($_POST['newsletter'] == 'on')
  18. {
  19. $Newsletter = "Wyrażam zgodę na bezpłatny newsletter";
  20. }
  21. if ($_POST['newsletter'] == 'off')
  22. {
  23. $Newsletter = "Nie wyrażam zgody nbn";
  24. }
  25.  
  26. }
  27. if (empty($_POST['newsletter']))
  28. {
  29. $Newsletter = "Nie wyrażam zgody";
  30. }
  31.  
  32.  
  33. $headers = "MIME-Version: 1.0" . "\r\n";
  34. $headers = 'Content-type: text/html; charset=utf-8' . "\r\n";
  35. $Od = "=?UTF-8?Q?".$Name." ".$Nazwisko."?=";
  36. $headers .= "From: " . $Od . " <" . $SenderEmail . ">\r\n";
  37.  
  38. $MailMessage = '
  39. <!doctype html>
  40. <html>
  41. <head>
  42. <meta charset="utf-8">
  43. <title>Wiadomość z formularza</title>
  44. <style type="text/css">
  45. p {
  46. font-family: Arial, Helvetica, sans-serif;
  47. font-size: 12px;
  48. }
  49.  
  50. </style>
  51. </head>
  52. <body>
  53. <p></p><br /><br />
  54. <hr><br /><br />
  55. <p>'. $MailContent .'</p><br /><br />
  56. <p><b>Wiadomość od:</b> '.$Name.' '.$Nazwisko.'<br />
  57. <b>Adres zwrotny:</b> '.$SenderEmail.'<br />
  58. <b>Telefon:</b> '.$Phone.'<br />
  59. <b>Newsletter:</b> '.$Newsletter.'<br />
  60.  
  61.  
  62.  
  63. </body>
  64. </html>';
  65.  
  66.  
  67. if( @mail( $TargetEmail, "Wiadomość z formularza", $MailMessage, $headers ) ) {
  68. $content = true;
  69. }
  70. else
  71. {
  72. $content = false;
  73. }
  74.  
  75. echo $content;
  76.  
  77.  
  78. ?>


Z góry bardzo dziękuję za odpowiedź!
Moodey
IProSoft
Możesz spróbować zamiast:

[JAVASCRIPT] pobierz, plaintext
  1. newsletter = $("#newsletter");
[JAVASCRIPT] pobierz, plaintext


wpisać

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. newsletter = $('input#newsletter:checked').length > 0 ? 'Wyrażam zgodę' : 'Nie wyrażam zgody';
  3.  
[JAVASCRIPT] pobierz, plaintext
Moodey
Uratowałeś kolejne zagubione dziecko we mgle! smile.gif Bardzo Ci dziękuję za pomoc! smile.gif
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.