Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP]Formularz kotnaktowy
Forum PHP.pl > Forum > Przedszkole
szikenen2
Cześć,

mam problem z formularzem, otóż zmienna firma nie jest dostarczana na maila, sam napis Frima wyświetla się w nagłówku.
Byłbym wdzięczny winksmiley.jpg
kod wygląda tak:

kontakt.html:
  1. <form action="form-kontakt/contact.php" method="post" id="cForm">
  2. <div class="pole_kontaktu">
  3. <div class="pole_kontaktuin">Imię i nazwisko:</div>
  4. <input class="pole_kontaktu_input" type="text" = name="posName" id="posName" /></div>
  5. <div class="pole_kontaktu">
  6. <div class="pole_kontaktuin">Nazwa firmy:</div>
  7. <input class="pole_kontaktu_input" type="text" = name="firma" id="firma" /></div>
  8. <div class="pole_kontaktu">
  9. <div class="pole_kontaktuin">Email:</div>
  10. <input class="pole_kontaktu_input" type="text" = name="posEmail" id="posEmail" /></div>
  11. <div class="pole_kontaktu">
  12. <div class="pole_kontaktuin">Temat:</div>
  13. <select id="posRegard" class="pole_kontaktu_input" type="text" = name="posRegard">
  14. <option>Handel</option>
  15. <option>Transport</option>
  16. <option>Inne</option>
  17. </select>
  18. </div>
  19. <div class="pole_kontaktu">
  20. <div class="pole_kontaktuin">Treść:</div>
  21. <textarea class="pole_kontaktu_input" cols="36" rows="6" name="posText" id="posText"></textarea></div>
  22. <div class="pole_kontaktu">
  23. <p class="pole_kontaktu_w">
  24. <input class="wyslij" type="submit" name="sendContactEmail" id="sendContactEmail" value=" " />
  25. </p></div>
  26. </label>
  27. </form>


contact.php:
  1. include "config.php";
  2.  
  3. function cleanPosUrl ($str) {
  4. return stripslashes($str);
  5. }
  6. if ( isset($_POST['sendContactEmail']) )
  7. {
  8. $to = $yourEmail;
  9. $subject = $yourSubject.': '.$_POST['posRegard'];
  10. $subject .= $yourSubject.': '.$_POST['firma'];
  11. $message = cleanPosUrl($_POST['posText']);
  12. $headers = "From: ".cleanPosUrl($_POST['posName'])." <".$_POST['posEmail'].">\r\n";
  13. $headers .= 'To: '.$yourName.' <'.$yourEmail.'>'."\r\n";
  14. $mailit = mail($to,$subject,$message,$headers);
  15. if ( @$mailit ) {
  16. header('Location: '.$referringPage.'?success=true');
  17. }
  18. else {
  19. header('Location: '.$referringPage.'?error=true');
  20. }
  21. }



xmlHttpRequest:

  1. include "config.php";
  2.  
  3. header('Content-Type: text/xml');
  4. echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
  5.  
  6. echo '<resultset>';
  7.  
  8. function cleanPosUrl ($str) {
  9. $nStr = $str;
  10. $nStr = str_replace("**am**","&",$nStr);
  11. $nStr = str_replace("**pl**","+",$nStr);
  12. $nStr = str_replace("**eq**","=",$nStr);
  13. return stripslashes($nStr);
  14. }
  15. if ( $_GET['contact'] == true && $_GET['xml'] == true && isset($_POST['posText']) ) {
  16. $to = $yourName;
  17. $subject = 'Mail ze strony: '.cleanPosUrl($_POST['posRegard']);
  18. $subject .= 'Firma '.cleanPosUrl($_POST['firma']);
  19. $message = cleanPosUrl($_POST['posText']);
  20. $headers = "From: ".cleanPosUrl($_POST['posName'])." <".cleanPosUrl($_POST['posEmail']).">\r\n";
  21. $headers .= 'To: '.$yourName.' <'.$yourEmail.'>'."\r\n";
  22. $mailit = mail($to,$subject,$message,$headers);
  23.  
  24. if ( @$mailit )
  25. { $posStatus = 'OK'; $posConfirmation = 'Ok! Twój Email został wysłany.'; }
  26. else
  27. { $posStatus = 'NOTOK'; $posConfirmation = 'Twój Email nie mógł zostać wysłany. Spróbuj później.'; }
  28.  
  29. if ( $_POST['selfCC'] == 'send' )
  30. {
  31. $ccEmail = cleanPosUrl($_POST['posEmail']);
  32. @mail($ccEmail,$subject,$message,"From: Yourself <".$ccEmail.">\r\nTo: Yourself");
  33. }
  34.  
  35. echo '
  36. <status>'.$posStatus.'</status>
  37. <confirmation>'.$posConfirmation.'</confirmation>
  38. <regarding>'.cleanPosUrl($_POST['posRegard']).'</regarding>
  39. ';
  40. }
  41. echo' </resultset>';
  42.  

nospor
No a gdzie kod js, którym slesz forma ajaxem?
kapuch
No i co to jest?
  1. <input class="pole_kontaktu_input" type="text" = name="firma" id="firma" />

W kazdym input masz pomiedzy type="text", a name="cos" znak rownosci - wyglada to tak:
type="text" = name="cos"
szikenen2
No i sęk siedział w tym, że nie edytowałem pliku .js, który teraz już działa i wygląda tak:

  1. function sprawdz(adres) {
  2. if (adres != "") {
  3. var re = new RegExp("[^@]{1,}[@]{1}[^@.]{1,}[.]{1}[^@]{1,}","gi");
  4. var wynik = re.test(adres);
  5. if (wynik == true) { return true; }
  6. if (wynik == false) { return false; }
  7. }
  8. else { return false; }
  9. }
  10.  
  11. function validateFields() {
  12. var frmEl = document.getElementById('cForm');
  13. var posName = document.getElementById('posName');
  14. var posEmail = document.getElementById('posEmail');
  15. var firma = document.getElementById('firma');
  16. var posRegard = document.getElementById('posRegard');
  17. var posText = document.getElementById('posText');
  18. // var strCC = document.getElementById('selfCC');
  19. var whiteSpace = /^[\s]+$/;
  20. if ( posText.value == '' || whiteSpace.test(posText.value) ) {
  21. alert("Próbujesz wysłać pusty Email. Napisz coś i spróbuj jeszcze raz.");
  22. }
  23. else if ( sprawdz(posEmail.value) == false ) {
  24. alert("Podaj poprawny adres Email aby otrzymać odpowiedź.");
  25. posEmail.focus();
  26. }
  27. else {
  28. sendPosEmail();
  29. }
  30. }
  31.  
  32. function sendPosEmail () {
  33. var success = document.getElementById('emailSuccess');
  34. var posName = document.getElementById('posName');
  35. var firma = document.getElementById('firma');
  36. var posEmail = document.getElementById('posEmail');
  37. var posRegard = document.getElementById('posRegard');
  38. var posText = document.getElementById('posText');
  39. // var strCC = document.getElementById('selfCC').value;
  40. var page = "form-kontakt/xmlHttpRequest.php?contact=true&xml=true";
  41.  
  42. showContactTimer(); // quickly begin the load bar
  43. success.style.display = 'none'; // hide the success bar (incase this is a multi-email
  44.  
  45. // convert (&, +, =) to string equivs. Needed so URL encoded POST won't choke.
  46. var str1 = posName.value;
  47. str1 = str1.replace(/&/g,"**am**");
  48. str1 = str1.replace(/=/g,"**eq**");
  49. str1 = str1.replace(/\+/g,"**pl**");
  50. var str2 = posEmail.value;
  51. str2 = str2.replace(/&/g,"**am**");
  52. str2 = str2.replace(/=/g,"**eq**");
  53. str2 = str2.replace(/\+/g,"**pl**");
  54. var str3 = posRegard.value;
  55. str3 = str3.replace(/&/g,"**am**");
  56. str3 = str3.replace(/=/g,"**eq**");
  57. str3 = str3.replace(/\+/g,"**pl**");
  58. var str4 = posText.value;
  59. str4 = str4.replace(/&/g,"**am**");
  60. str4 = str4.replace(/=/g,"**eq**");
  61. str4 = str4.replace(/\+/g,"**pl**");
  62. var str5 = firma.value;
  63. str5 = str5.replace(/&/g,"**am**");
  64. str5 = str5.replace(/=/g,"**eq**");
  65. str5 = str5.replace(/\+/g,"**pl**");
  66.  
  67. // var stuff = "selfCC="+strCC+"&posName="+str1+"&posEmail="+str2+"&posRegard="+str3+"&posText="+str4+"&firma="+str5;
  68. var stuff = "posName="+str1+"&posEmail="+str2+"&posRegard="+str3+"&posText="+str4+"&firma="+str5;
  69. loadXMLPosDoc(page,stuff)
  70. }
  71. function showContactTimer () {
  72. var loader = document.getElementById('loadBar');
  73. loader.style.display = 'block';
  74. sentTimer = setTimeout("hideContactTimer()",6000);
  75. }
  76.  
  77. function hideContactTimer () {
  78. var loader = document.getElementById('loadBar');
  79. var success = document.getElementById('emailSuccess');
  80. var fieldArea = document.getElementById('contactFormArea');
  81. var inputs = fieldArea.getElementsByTagName('input');
  82. var inputsLen = inputs.length;
  83. var tAreas = fieldArea.getElementsByTagName('textarea');
  84. var tAreasLen = tAreas.length;
  85. // Hide the load bar alas! Done Loading
  86. loader.style.display = "none";
  87. success.style.display = "block";
  88. success.innerHTML = '<strong style="color:green;">'+grabPosXML("confirmation")+'</strong>';
  89. // Now Hijack the form elements
  90. for ( i=0;i<inputsLen;i++ ) {
  91. if ( inputs[i].getAttribute('type') == 'text' ) {
  92. inputs[i].value = '';
  93. }
  94. }
  95. for ( j=0;j<tAreasLen;j++ ) {
  96. tAreas[j].value = '';
  97. }
  98. }
  99.  
  100. function ajaxContact() {
  101. var frmEl = document.getElementById('cForm');
  102. addEvent(frmEl, 'submit', validateFields, false);
  103. frmEl.onsubmit = function() { return false; }
  104. }
  105. addEvent(window, 'load',ajaxContact, false);


Dzięki za przypomnienie winksmiley.jpg
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.