Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery][php] przekazywanie danych formularza do zmiennej php
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Lejto
Mam problem na stronie http://dmuchancemalucha.pl/index.php?optio...6&Itemid=92 z formularzem. Wykorzystałem jQuery do wysyłania maila, jednak dobrze mi nie zwraca wybranych pól. Np. Dla Wybierz płeć (wybieram chłopiec), a w zmiennej zwraca mi chłopiec i dziewczynka.
Kod formularza:
  1. <form id="formail" method="post">
  2. <label>Płeć dziecka: </label>Chłopiec<input id="plec1" name="plec" type="radio" value="Chłopiec" />
  3. Dziewczynka<input id="plec2" name="plec" type="radio" value="Dziewczynka" />
  4.  
  5.  
  6.  
  7. <label>Wiek: </label><input id="wiek" name="wiek" type="text" />
  8. <label>E-mail:</label> <input id="mail" name="mail" type="text" /> <label>Telefon kontaktowy: </label><input id="telefon" name="telefon" type="text" /> <label>Data imprezy: </label><input id="data" name="data" type="text" /> <label>Godzina imprezy: </label><input id="godzina" name="godzina" type="text" /> <label>Kwota, którą chcę przeznaczyć na realizację przyjęcia: </label><input id="kwota" name="kwota" type="text" /> <label>Części składowe:</label> <label>Tort okolicznościowy (proszę opisać):</label> <textarea id="text" cols="40" rows="10" name="text"></textarea> <label>Zabawki dmuchane: </label> <input id="dmuchane" name="dmuchane" type="checkbox" value="zabawki dmuchane" /> <label>Trampolina do skakania: </label> <input id="trampolina" name="trampolina" type="checkbox" value="trampolina do skakania" /> <label>Strzelnica łuki/wiatrówki/dmuchawki/ASG: </label> <input id="strzelnica" name="strzelnica" type="checkbox" value="strzelnica łuki/wiatrówki/dmuchawki/ASG" /> <label>Szukanie skarbu wykrywaczami metalu: </label> <input id="szukanie" name="szukanie" type="checkbox" value="szukanie skarbu wykrywaczami metalu" /> <label>Kula zorbing: </label> <input id="kula" name="kula" type="checkbox" value="kula zorbing" /> <label>Kala wodna: </label> <input id="kala" name="kala" type="checkbox" value="kala wodna" /> <label>Dmuchana ścianka wspianczkowa: </label> <input id="sciana" name="sciana" type="checkbox" value="dmuchana ścianka wspianczkowa" /> <label>Walki gladiatorów/sumoków: </label> <input id="walki" name="walki" type="checkbox" value="walki gladiatorów/sumoków" /> <label>Malowanie buziek: </label> <input id="malowanie" name="malowanie" type="checkbox" value="malowanie buziek" /> <label>Zwierzątka z baloników: </label> <input id="zwierzeta" name="zwierzeta" type="checkbox" value="zwierzątka z baloników" /> <label>Wata cukrowa: </label> <input id="wata" name="wata" type="checkbox" value="wata cukrowa" /> <label>Popcorn: </label> <input id="popcorn" name="popcorn" type="checkbox" value="popcorn" /> <label>Xbox+kinekt: </label> <input id="xbox" name="xbox" type="checkbox" value="xbox+kinekt" /> <label>Gra strzelnaka ASG: </label> <input id="gra1" name="gra1" type="checkbox" value="gra strzelnaka ASG" /> <label>Gra strzelanka Paintball: </label> <input name="gra2" type="checkbox" value="gra strzelanka Paintball" /> <input id="sendmail" name="sendmail" type="submit" value="Wyślij" /> </form><div id="response"></div></div>


kod js
  1. jQuery(document).ready(function(){
  2. jQuery("#sendmail").click(function(){
  3. var valid = '';
  4. var isr = '';
  5. var plec1 = jQuery("#plec1").val();
  6. var plec2 = jQuery("#plec2").val();
  7. var wiek = jQuery("#wiek").val();
  8. var telefon = jQuery("#telefon").val();
  9. var godzina = jQuery("#godzina").val();
  10. var kwota = jQuery("#kwota").val();
  11. var text = jQuery("#text").val();
  12. var dmuchane = jQuery("#dmuchane").val();
  13. var trampolina = jQuery("#trampolina").val();
  14. var strzelnica = jQuery("#strzelnica").val();
  15. var szukanie = jQuery("#szukanie").val();
  16. var kula = jQuery("#kula").val();
  17. var kala = jQuery("#kala").val();
  18. var sciana = jQuery("#sciana").val();
  19. var walki = jQuery("#walki").val();
  20. var malowanie = jQuery("#malowanie").val();
  21. var zwierzeta = jQuery("#zwierzeta").val();
  22. var wata = jQuery("#wata").val();
  23. var popcorn = jQuery("#popcorn").val();
  24. var xbox = jQuery("#xbox").val();
  25. var gra1 = jQuery("#gra1").val();
  26. var gra2 = jQuery("#gra2").val();
  27. var mail = jQuery("#mail").val();
  28. var text = jQuery("#text").val();
  29. var data = jQuery("#data").val();
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36. if (valid!='') {
  37. jQuery("#response").fadeIn("slow");
  38. jQuery("#response").html("Błąd:"+valid);
  39. }
  40. else {
  41. var datastr ='plec1=' + plec1 + '&plec2=' + plec2;
  42. jQuery("#response").css("display", "block");
  43. jQuery("#response").html("Wysyłanie wiadomości... ");
  44. jQuery("#response").fadeIn("slow");
  45. setTimeout("send('"+datastr+"')",2000);
  46. }
  47. return false;
  48. });
  49. });
  50. function send(datastr){
  51. jQuery.ajax({
  52. type: "POST",
  53. url: "mail.php",
  54. data: datastr,
  55. cache: false,
  56. success: function(html){
  57. jQuery("#response").fadeIn("slow");
  58. jQuery("#response").html(html);
  59. setTimeout('jQuery("#response").fadeOut("slow")',2000);
  60. }
  61. });
  62. }

i kod php
  1. <?php
  2. $plec1 = $_POST["plec1"];
  3. $plec2 = $_POST["plec2"];
  4. $wiek = $_POST["wiek"];
  5. $telefon = $_POST["telefon"];
  6. $godzina = $_POST["godzina"];
  7. $kwota = $_POST["kwota"];
  8. $text = $_POST["text"];
  9. $dmuchane = $_POST["dmuchane"];
  10. $trampolina = $_POST["trampolina"];
  11. $strzelnica = $_POST["strzelnica"];
  12. $szukanie = $_POST["szukanie"];
  13. $kula = $_POST["kula"];
  14. $kala = $_POST["kala"];
  15. $sciana = $_POST["sciana"];
  16. $walki = $_POST["walki"];
  17. $malowanie = $_POST["malowanie"];
  18. $zwierzeta = $_POST["zwierzeta"];
  19. $wata = $_POST["wata"];
  20. $popcorn = $_POST["popcorn"];
  21. $xbox = $_POST["xbox"];
  22. $gra1 = $_POST["gra1"];
  23. $gra2 = $_POST["gra2"];
  24. $mail = $_POST["mail"];
  25. $data = $_POST['data'];
  26.  
  27.  
  28.  
  29.  
  30. $to = "lukasz.ogan@gmail.com";
  31. $m ="Dostałeś zapytanie od: ".$mail;
  32. $m .="Treść: ";
  33. $m .= "Płeć: $plec1.$plec2 \r \n Wiek: $wiek \r \n Telefon: $telefon \r \n Godzina: $godzina \r \n Data: $data \r \n Kwota: $kwota \r \n Opis tortu: $text \r \n Dmuchane zabawki: $dmuchane \r \n Trampolina: $trampolina \r \n Strzelnica: $strzelnica \r \n Szukanie: $szukanie \r \n Kula: $kula \r \n Sciana $sciana \r \n Walki: $walki \r \n Malowanie: $malowanie \r \n Wata: $wata \r \n Popcorn: $popcorn \r \n Xbox: $xbox \r \n Gra1: $gra1 \r \n Gra2: $gra2 \r \n Mail: $mail \r \n Data: $data \r \n ";
  34.  
  35.  
  36. if(mail($to, $subject,$m)){
  37. echo "Wysłano";
  38. echo $popcorn;
  39. }
  40. ?>


Gdzie tu jest błąd?


Pozdrawiam
Shili
  1. jQuery(document).ready(function(){
  2. jQuery("#sendmail").click(function(){


Zamień na zdarzenie submit dla formularza.
Jeśli ktoś wyśle formularz poprzez wciśnięcie Enter cały Twój długi kod js się nie wykona.

Nic dziwnego, że zwraca Ci dwie płcie, jak dwie płcie wybierasz:

  1. var plec1 = jQuery("#plec1").val();
  2. var plec2 = jQuery("#plec2").val();
  3. ...
  4. var datastr ='plec1=' + plec1 + '&plec2=' + plec2;


http://api.jquery.com/checked-selector/
Lejto
no przecież przesyłam dane z formularza
nospor
Problem z php nie ma żadnego związku - przenosze.

Cytat
Nic dziwnego, że zwraca Ci dwie płcie, jak dwie płcie wybierasz:
Święte słowa. Wysyła dwie płcie niezależnie czy zaznaczone czy nie i się dziwi, że dwie mu się wysyłąją.... smile.gif
Lejto
nie myślałem że w jQuery trzeba oddzielnie to sprawdzić
  1. var plec1 = jQuery('input:radio[name=plec]:checked').val();
  2.  

i działa
Shili
Oczywiście że trzeba.

Funkcja val() wybiera atrybut value ustawiony dla pola, jak sama nazwa wskazuje.
Pierwszy rzut oka na kod html - value ustawione dla obydwu pól radio.
Ergo - coś trzeba dorzucić.

Btw, labele same w sobie to element zbędny.
Powiąż labele przez id z elementami formularza, żeby po kliknięciu na label automatycznie przenosiło kursor do pola tekstowego lub zaznaczało odpowiedni element.
http://mimas.ceti.pl/dia/day_28.html
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.