![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 10.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Znalazłem ciekawy, a zarazem prosty formularz kontaktowy. Problem w tym, że pomimo wykonania wszystkich wskazówek z tutoriala nie wysyła maila. Stawiam swoje pierwsze kroki w PHP, stąd moja prośba o pomoc. Otrzymuję taki komunikat: "Uncaught TypeError: Cannot read property 'childNodes' of undefined". Poniżej wkleiłem (moim zdaniem) problematyczną część. contact.php
xmlHttpRequest.php
contact.js [js]function isEmailAddr(email) { var result = false; var theStr = new String(email); var index = theStr.indexOf("@"); if (index > 0) { var pindex = theStr.indexOf(".",index); if ((pindex > index+1) && (theStr.length > pindex+1)) result = true; } return result; } function validateFields() { var frmEl = document.getElementById('cForm'); var posName = document.getElementById('posName'); var posEmail = document.getElementById('posEmail'); var posRegard = document.getElementById('posRegard'); var posText = document.getElementById('posText'); //var strCC = document.getElementById('selfCC'); var whiteSpace = /^[\s]+$/; if ( posText.value == '' || whiteSpace.test(posText.value) ) { alert("Proszę uzupełnić brakujace pola."); } else if (posEmail.value.length<1){ alert("Proszę podać adres e-mail."); } else if (isEmailAddr(posEmail.value)==false){ alert("Proszę podać poprawny adres e-mail"); } else { sendPosEmail(); } } function sendPosEmail () { var success = document.getElementById('emailSuccess'); var posName = document.getElementById('posName'); var posEmail = document.getElementById('posEmail'); var posRegard = document.getElementById('posRegard'); var posText = document.getElementById('posText'); var page = "scripts/xmlHttpRequest.php?contact=true&xml=true"; showContactTimer(); // quickly begin the load bar success.style.display = 'none'; // hide the success bar (incase this is a multi-email // convert (&, +, =) to string equivs. Needed so URL encoded POST won't choke. var str1 = posName.value; str1 = str1.replace(/&/g,"**am**"); str1 = str1.replace(/=/g,"**eq**"); str1 = str1.replace(/\+/g,"**pl**"); var str2 = posEmail.value; str2 = str2.replace(/&/g,"**am**"); str2 = str2.replace(/=/g,"**eq**"); str2 = str2.replace(/\+/g,"**pl**"); var str3 = posRegard.value; str3 = str3.replace(/&/g,"**am**"); str3 = str3.replace(/=/g,"**eq**"); str3 = str3.replace(/\+/g,"**pl**"); var str4 = posText.value; str4 = str4.replace(/&/g,"**am**"); str4 = str4.replace(/=/g,"**eq**"); str4 = str4.replace(/\+/g,"**pl**"); var stuff = "posName="+str1+"&posEmail="+str2+"&posRegard="+str3+"&posText="+str4; loadXMLPosDoc(page,stuff) } function showContactTimer () { var loader = document.getElementById('loadBar'); loader.style.display = 'block'; sentTimer = setTimeout("hideContactTimer()",6000); } function hideContactTimer () { var loader = document.getElementById('loadBar'); var success = document.getElementById('emailSuccess'); var fieldArea = document.getElementById('contactFormArea'); var inputs = fieldArea.getElementsByTagName('input'); var inputsLen = inputs.length; var tAreas = fieldArea.getElementsByTagName('textarea'); var tAreasLen = tAreas.length; // Hide the load bar alas! Done Loading loader.style.display = "none"; success.style.display = "block"; success.innerHTML = '<strong style="color:red;">'+grabPosXML("confirmation")+'</strong>'; // Now Hijack the form elements for ( i=0;i<inputsLen;i++ ) { if ( inputs[i].getAttribute('type') == 'text' ) { inputs[i].value = ''; } } for ( j=0;j<tAreasLen;j++ ) { tAreas[j].value = ''; } } function ajaxContact() { var frmEl = document.getElementById('cForm'); addEvent(frmEl, 'submit', validateFields, false); frmEl.onsubmit = function() { return false; } } addEvent(window, 'load',ajaxContact, false); [/js] xmlHttp.js [js]var pos; // variable for posting information function loadXMLPosDoc(url,posData) { // branch for native XMLHttpRequest object if (window.XMLHttpRequest) { pos = new XMLHttpRequest(); pos.onreadystatechange = processPosChange; pos.open("POST", url, false); pos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); pos.send(posData); // branch for IE/Windows ActiveX version } else if (window.ActiveXObject) { pos = new ActiveXObject("Microsoft.XMLHTTP"); if (pos) { pos.onreadystatechange = processPosChange; pos.open("POST", url, false); pos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); pos.send(posData); } } } function grabPosXML (tagName) { return pos.responseXML.documentElement.getElementsByTagName(tagName)[0].childNodes[0].n odeValue; } function processPosChange() { // page loaded "complete" if (pos.readyState == 4) { // page is "OK" if (pos.status == 200) { if ( grabPosXML("posStatus") == 'NOTOK' ) { alert('There were problems Sending Email. Please check back in a couple minutes'); } } } }[/js] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:29 |