Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jquery][php] przekazywanie danych formularza do zmiennej php
Lejto
post
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


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

Ten post edytował Lejto 17.12.2011, 14:56:54


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Shili
post
Post #2





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


  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/

Ten post edytował Shili 17.12.2011, 15:22:52
Go to the top of the page
+Quote Post
Lejto
post
Post #3





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


no przecież przesyłam dane z formularza


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lejto
post
Post #5





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


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


--------------------
Go to the top of the page
+Quote Post
Shili
post
Post #6





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


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
Go to the top of the page
+Quote Post

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 Aktualny czas: 21.08.2025 - 04:18