2009-01-08 30 views
49

का उपयोग करके फ़ॉर्म सबमिट करें ऐसा लगता है कि यह कोड की कुछ पंक्तियों की आवश्यकता के बिना jQuery में बनाया गया कुछ होना चाहिए, लेकिन मुझे "सरल" समाधान नहीं मिल रहा है।AJAX और jQuery

<form method="get" action="page.html"> 
    <input type="hidden" name="field1" value="value1" /> 
    <input type="hidden" name="field2" value="value2" /> 
    <select name="status"> 
     <option value=""></option> 
     <option value="good">Good</option> 
     <option value="bad">Bad</option> 
    </select> 
</form> 

किसी चुनिंदा क्षेत्र बदलता है, मैं ajax का उपयोग कर डेटाबेस अद्यतन करने प्रपत्र सबमिट करना चाहते हैं: कहो, मैं एक HTML फ़ॉर्म है। मैंने सोचा था कि किसी तरह से मैन्युअल रूप से मान/गुण बनाए बिना निम्न करने के लिए नहीं होगा, बस उन्हें तरह सभी, भेजें:

$("select").change(function(){ 
    $.get("page.html?" + serializeForm()); 
}); 

मैं क्या याद आ रही है?

+1

पुन: अद्यतन, आप शायद जब से तुम सर्वर से डेटा गुजर रहे इस GET अनुरोध होने के लिए नहीं करना चाहती। लेकिन हाँ, यह सामान्य विचार है। आपका स्वागत है :) – rfunduk

+1

यहां सर्वर पर कार्रवाई के लिए फॉर्म डेटा पोस्ट करने का तरीका है http://tryconcepts.blogspot.in/2012/02/post-form-data-using-jquery-post-or.html – yashpal

उत्तर

10

यह काम खत्म हो गया है।

$("select").change(function(){ 
    $.get("/page.html?" + $(this).parent("form").find(":input").serialize()); 
}); 
29

एक अच्छा form plugin है जो आपको एक HTML रूप को असंकालिक रूप से भेजने की अनुमति देता है।

$(document).ready(function() { 
    $('#myForm1').ajaxForm(); 
}); 

या

$("select").change(function(){ 
    $('#myForm1').ajaxSubmit(); 
}); 

प्रपत्र तुरंत

+0

धन्यवाद ! यह प्लगइन कमाल है! – Rich

133

पहले प्रस्तुत करने के लिए अपने प्रपत्र एक id विशेषता देते हैं, तो इस तरह कोड का उपयोग करें:

$(document).ready(function() { 
    var form = $('#my_awesome_form'); 

    form.find('select:first').change(function() { 
    $.ajax({ 
     type: "POST", 
     url: form.attr('action'), 
     data: form.serialize(), 
     success: function(response) { 
     console.log(response); 
     } 
    }); 
    }); 

}); 

तो यह कोड .serialize() का उपयोग करता है फॉर्म से प्रासंगिक डेटा खींचने के लिए। यह भी मानता है कि आप जिस प्रकार की देखभाल करते हैं वह फ़ॉर्म में पहला है।

भविष्य के संदर्भ के लिए, jQuery docs बहुत, बहुत अच्छे हैं।

+7

एक बहुत ही महत्वपूर्ण बिंदु, जो कि कई लोगों के लिए पूरी तरह से स्पष्ट हो सकता है लेकिन निश्चित रूप से मेरे लिए ऐसा नहीं था जो यहां छोड़ा गया है और इस विषय पर अन्य सभी एसओ पदों में यह है कि सफल होने के लिए आपको यह सुनिश्चित करना होगा कि आप जिस बटन का उपयोग कर रहे हैं इस घटना को ट्रिगर करने के लिए जो AJAX के माध्यम से फ़ॉर्म जमा करने का कारण बनता है सबमिट नहीं है! अन्यथा यह हमेशा असफल रहेगा। यहां serialize दृष्टिकोण साफ है। – codepuppy

+8

चूंकि यह कोड किसी चयन बॉक्स के परिवर्तन पर फ़ॉर्म सबमिट करने से संभालता है, इससे कोई फर्क नहीं पड़ता कि आपके पास फॉर्म में ' 'है। अगर आपके पास फॉर्म में सबमिट बटन है तो आपको इसके बजाय फॉर्म पर 'submit' ईवेंट को संभालने और डिफ़ॉल्ट कार्रवाई को रोकने की आवश्यकता है। एक बार फिर [डॉक्स] (http://api.jquery.com/submit/) इस पर बचाव के लिए आते हैं :) – rfunduk

+0

अच्छा समाधान .. धन्यवाद – JEMI