2011-09-15 20 views
53

के लिए फॉर्म मान प्राप्त करना मैं AJAX के माध्यम से एक php फ़ाइल में फॉर्म मान पोस्ट करने का प्रयास कर रहा हूं। "डेटा" पैरामीटर के अंदर भेजने के लिए मैं अपने फॉर्म मान कैसे एकत्र करूं?jQuery - AJAX POST

$.ajax({ 
     type: "POST", 
     data: "submit=1&username="+username+"&email="+email+"&password="+password+"&passconf="+passconf, 
     url: "http://rt.ja.com/includes/register.php", 
     success: function(data) 
     { 
      //alert(data); 
      $('#userError').html(data); 
      $("#userError").html(userChar); 
      $("#userError").html(userTaken); 
     } 
    }); 

HTML:

<div id="border"> 
    <form action="/" id="registerSubmit"> 
    <div id="userError"></div> 
     Username: <input type="text" name="username" id="username" size="10"/><br> 
     <div id="emailError" ></div> 
     Email: <input type="text" name="email" size="10" id="email"/><br> 
     <div id="passError" ></div> 
     Password: <input type="password" name="password" size="10" id="password"/><br> 
     <div id="passConfError" ></div> 
     Confirm Password: <input type="password" name="passconf" size="10" id="passconf"/><br> 
     <input type="submit" name="submit" value="Register" /> 
    </form> 
</div> 
+1

आपको इसे जेसन प्रारूप '{" कुंजी ": मान," कुंजी ": मान} में भेजना चाहिए। मैं सुझाव दूंगा कि आपके पैरामीटर के साथ एक जावास्क्रिप्ट ऑब्जेक्ट अपनी गुणों के रूप में बनाएं और ऑब्जेक्ट को जेसन प्रारूप में बदलने के लिए 'JSON.stringify (ऑब्जेक्ट)' का उपयोग करें। –

+0

@SangSuantak, आप जेएसओएन रूपांतरणों से परेशान क्यों होंगे जब आपको उन्हें नाम/मूल्य जोड़े के सामान्य सेट के साथ आवश्यकता नहीं होगी ?! –

उत्तर

111

serialize विधि का उपयोग करें serialize()

+0

आप फॉर्म डेटा और अतिरिक्त मैन्युअल रूप से सेट चर कैसे प्राप्त करते हैं? डेटा की तरह: $ ("# रजिस्टर सबमिट करें")। serialize() + 'और myvar = 123'? ऐसा लगता है कि मेरे पास यह तरीका नहीं है – Dss

+3

मुझे नहीं लगता कि यह क्या काम नहीं करेगा। यदि आप जिस डेटा को जोड़ना चाहते हैं वह अधिक जटिल है, तो आप '$ .param' का उपयोग कर सकते हैं। '$ (" फॉर्म ")। serialize() +" और "+ $ .param ({myvar: 123})'। – Robin

+5

एक और तरीका भी है: 'serializeArray' का उपयोग करें। 'डेटा = $ (" फॉर्म ")। serializeArray(); data.push ({name: "myvar", मान: 123}); $ .param (डेटा); ' – Robin

5

आप आदानों से डेटा एकत्र करने वैल फ़ंक्शन का उपयोग कर सकते हैं: इस कोड के रूप में

jQuery("#myInput1").val(); 

http://api.jquery.com/val/

+0

धन्यवाद! उसने ऐसा किया – user547794

+4

हाँ, लेकिन आपको इसे हर क्षेत्र के लिए मैन्युअल रूप से नहीं करना चाहिए। यही है serialize के लिए है। यदि आप एक फ़ील्ड जोड़ते हैं तो क्या होगा? आप अपने जेएस को बदलना नहीं चाहते हैं। – Robin

0

कोशिश।

$.ajax({ 
     type: "POST", 
     url: "http://rt.ja.com/includes/register.php?submit=1", 
     data: "username="+username+"&email="+email+"&password="+password+"&passconf="+passconf, 

     success: function(html) 
     { 
      //alert(html); 
      $('#userError').html(html); 
      $("#userError").html(userChar); 
      $("#userError").html(userTaken); 
     } 
    }); 

मुझे लगता है कि यह निश्चित रूप से काम करेंगे ..

आप भी jQuery अजाक्स के माध्यम से डेटा भेजने के लिए .serialize() समारोह का उपयोग कर सकते ..

i.e: data : $("#registerSubmit").serialize() 

धन्यवाद।

$.ajax({ 
    ... 
    data: $("#registerSubmit").serialize(), 
    ... 
}) 

डॉक्स::

0
var username = $('#username').val(); 
var email= $('#email').val(); 
var password= $('#password').val(); 
2
var data={ 
userName: $('#userName').val(), 
email: $('#email').val(), 
//add other properties similarly 
} 

और

$.ajax({ 
     type: "POST", 
     url: "http://rt.ja.com/includes/register.php?submit=1", 
     data: data 

     success: function(html) 
     { 
      //alert(html); 
      $('#userError').html(html); 
      $("#userError").html(userChar); 
      $("#userError").html(userTaken); 
     } 
    }); 

आप न कुछ और के बारे में परेशान किया है। jquery serialization इत्यादि को संभालेगा। आप डेटा जेसन ऑब्जेक्ट में सबमिट क्वेरी स्ट्रिंग पैरामीटर सबमिट = 1 जोड़ सकते हैं।

7
$("#registerSubmit").serialize() // returns all the data in your form 
$.ajax({ 
    type: "POST", 
    url: 'your url', 
    data: $("#registerSubmit").serialize(), 
    success: function() { 
      //success message mybe... 
    } 
});