2011-08-25 27 views
6

मुझे एक समस्या है जब मैं एक PHP स्क्रिप्ट में अजाक्स के माध्यम से एक संपर्क फ़ॉर्म जमा करता हूं। मैंने पहले jQuery और अजाक्स फ़ंक्शन का उपयोग पहले से ही संपर्क स्क्रिप्ट का उपयोग किया है, हालांकि इस मौके पर प्रक्रिया AJAX अनुरोध तक चलती है और फिर त्रुटि लौटाती है: खाली स्ट्रिंग।jQuery AJAX फ़ॉर्म त्रुटि। खाली स्ट्रिंग

$(document).ready(function(){ 
    jQuery("#sendmail").click(function(){ 
     var name = $("#name").val(); 
     var phone = $("#phone").val(); 
     var email = $("#email").val(); 
     var text = $("#message").val(); 

     //var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&text=' + text; 
     var datastr ='name=' + name + '&phone=' + phone + '&email=' + email + '&text=' + text; 
     $("#form-div").css("float", "left"); 
     $("#form-div").html("<p>Thank you for contacting Stillframe Photography.</p><p>Please wait for just a few moments while your enquiry is being sent.</p>"); 
     $("#form-div").fadeIn("slow"); 

     alert(datastr); 

     jQuery.ajax({ 
      type: "POST", 
      url: "contact.script.php", 
      data: datastr, 
      success: function(html){ 
      $("#response").fadeIn("slow"); 
      $("#response").html(html); 
      //setTimeout('$("#response").fadeOut("slow")',2000); 
      } 
      ,error: function (XMLHttpRequest, textStatus, errorThrown) { 
           $("#response").html('there was an error'); 
          console.log('error thrown'); 
          console.log(errorThrown); 
      } 
     }); 
    }); 
}); 

आप http://www.stillframe.com.au/test.php के इस ऑपरेशन में पृष्ठ देख सकते हैं और आप ऊपर एक ही लिंक पर पर बिना पेज मीडिया प्रपत्र देख सकते हैं लेकिन test2.php

मैं भी किसी अन्य के बिना स्क्रिप्ट जोड़ दिया है एक ही यूआरएल के लिए jQuery लेकिन test3.php जो सीधे PHP PHP स्क्रिप्ट पर पोस्ट करता है यह पुष्टि करने के लिए कि उस स्क्रिप्ट में कोई त्रुटि नहीं है।

हल किया गया: सिर से मूल href टैग हटाया गया और स्क्रिप्ट अब ठीक काम करता है।

+0

क्या आपने अपना यूआरएल डेटा रखने और 'डेटा' लाइन को हटाने की कोशिश की है? यूआरएल: 'contact.script.php? Name =' + name + 'और फोन =' + फोन + 'और ईमेल =' + ईमेल + 'और टेक्स्ट =' + टेक्स्ट, –

+0

मुझे test2.php पर कोई त्रुटि नहीं मिल रही है काम कर रहे हो –

+0

धन्यवाद जेम्स। परीक्षण 2 पर आपको 'संपर्क में आने के लिए धन्यवाद' प्रतिक्रिया मिली थी या क्या आपको 'त्रुटि हुई' प्रतिक्रिया मिली? –

उत्तर

-4

निम्नलिखित कारणों से कच्चे जावास्क्रिप्ट के साथ AJAX का उपयोग करना बेहतर है।

  1. कोड बहुत सरल और छोटा है।
  2. आप कभी भी किसी त्रुटि के साथ समाप्त नहीं होंगे।
  3. आप लक्ष्य केवल जावास्क्रिप्ट से PHP तक चर को सही आराम से भेजने के लिए है, इसकी देखभाल की जाएगी, lemme आपके लिए नीचे एक नमूना कोड जोड़ें।

    function insert(){ 
    if(window.XMLHttpRequest) 
    { 
        xmlhttp = new window.XMLHttpRequest(); 
    } 
    else 
    { 
        xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 
    } 
    
    xmlhttp.onreadystatechange = function() { 
        if(xmlhttp.readyState == '4' && xmlhttp.status == '200') 
        { 
         document.getElementById('msg').innerHTML = xmlhttp.responseText;  
        } 
    } 
    
    name = document.getElementById('insert').value; 
    
    parameters = 'insert=' + name; 
    
    xmlhttp.open('POST', 'day3.include.php', true); 
    xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
    xmlhttp.send(parameters); 
    

    }

मापदंडों में अपने चर के सभी तदनुसार पारित और php से जबाब प्रदर्शित करने के लिए एक div # संदेश पैदा करते हैं।

किसी भी भ्रम से मुझे इसके बजाय क्षेत्र द्वारा क्षेत्र का उपयोग कर के पीछे पूछना http://www.thetutlage.com

+5

-1। आप एक त्रुटि के साथ "कभी नहीं" खत्म हो जाएगा? वास्तव में? मुझे यकीन है कि मैं एक रास्ता समझ सकता हूं। आपका उत्तर शुद्ध वरीयता है, और यह ओपी के मुद्दे को प्रोग्राम के तरीके से हल नहीं करता है। – bpeterson76

8

पर है, तो फार्म आईडी <form id="myform"> उपयोग करें और यह क्रमानुसार। इसे आज़माएं:

$(document).ready(function(){ 
    jQuery("#sendmail").click(function(){ 
     jQuery.ajax({ 
      type: "POST", 
      url: "contact.script.php", 
      data: $('#myform').serialize(), 
      cache: false, 
      success: function(output) { 
       $("#form-div").css("float", "left"); 
       $("#form-div").html("<p>Thank you for contacting Stillframe Photography.</p><p>Please wait for just a few moments while your enquiry is being sent.</p>"); 
       $("#form-div").fadeIn("slow"); 
       $("#response").html(output); 
       $("#response").fadeIn("slow"); 
       //setTimeout('$("#response").fadeOut("slow")',2000); 
      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
           $("#response").html('there was an error'); 
          console.log('error thrown'); 
          console.log(errorThrown); 
      } 
     }); 
    }); 
}); 
+0

आपकी मदद के लिए धन्यवाद। इस स्क्रिप्ट ने कई अपवाद त्रुटियां उत्पन्न की हैं। –

+1

किस तरह की त्रुटियां? वे क्या हैं? –

संबंधित मुद्दे