jQuery का उपयोग कर प्रक्रिया प्रपत्र डेटा

वोट
1

मैं वर्तमान में प्रोटोटाइप का उपयोग कर रहा है, लेकिन मैं jQuery के लिए इस समारोह के पुनर्लेखन के लिए करना चाहते हैं:

function post(div,url,formId) {
  new Ajax.Updater(div, url, {
    asynchronous:true, 
    parameters:Form.serialize(formId)
  });
}

एचटीएमएल उदाहरण है कि यह साथ चला जाता है:

<form method=post action= id=foo 
  onsubmit=post('result','getdata.php','foo');return false;>
  <input type=text name=data />
</form>
<div id=result></div>

मैं jQuery.load () और jQuery.post () को देखकर किया गया है, लेकिन मुझे यकीन है कि जो और किसी एक का उपयोग करने के लिए कैसे वास्तव में नहीं हूँ।

आपकी सहायता के लिये पहले से ही धन्यवाद।

02/06/2009 को 19:25
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
0

इस का प्रयोग करें और अपने HTML में ऑनसबमिट विशेषता से छुटकारा पाने के:

$(document).ready(function() {
    $("#foo").submit(function() {
        $.post($(this).attr("action"), $(this).serialize());
        return false; // prevent actual browser submit
    });
});

jQuery serialize विधि डॉक्स

02/06/2009 को 19:28
का स्रोत उपयोगकर्ता

वोट
8

इस HTML के साथ:

<form method="post" action="getdata.php" id="foo">
  <input type="text" name="data" />
</form>
<div id="result"></div>

आप jQuery के साथ ऐसा कर सकते हैं:

$(function() { // wait for the DOM to be ready
    $('#foo').submit(function() { // bind function to submit event of form
        $.ajax({
            type: $(this).attr('method'), // get type of request from 'method'
            url: $(this).attr('action'), // get url of request from 'action'
            data: $(this).serialize(), // serialize the form's data
            success: function(responseText) {
                // if everything goes well, update the div with the response
                $('#result').html(responseText);
            }
        });
        return false; // important: prevent the form from submitting
    });
});

कारण मैं से छुटकारा मिला onsubmitकोड है क्योंकि यह उस तरह इनलाइन JavaScript के लिए बुरा व्यवहार माना जाता है। आप अपने रूपों जावास्क्रिप्ट का मुक्त बनाने के लिए प्रयास करते हैं और फिर सभी जावास्क्रिप्ट इससे दूर बाँध चाहिए। यह विनीत जावास्क्रिप्ट के रूप में जाना जाता है और यह एक अच्छी बात है।

संपादित करें :

जब से तुम बहुत से पृष्ठों में है कि कोड है, यह एक समारोह है कि क्या आप एक ही हस्ताक्षर आप वर्तमान पद समारोह पर है का उपयोग कर करना चाहते हैं जाएगा। मैं आप इस रखने पर अपने सभी रूपों को अद्यतन करने के कुछ ही घंटों लेने की सलाह देते हैं, लेकिन यहां यह वैसे भी है:

function post(div,url,formId) {
    $.post(url, $('#' + formId).serialize(), function(d) {
        $('#' + div).html(d);
    });
}

जहाँ तक आपकी समस्या के रूप में, livequery प्लगइन तुम वहाँ मदद कर सकता है। वैकल्पिक रूप से, यह एक समारोह में बाध्यकारी कोड encapsulating और यह बुला जब भी एक रूप में जोड़ा जाता है के रूप में सरल है।

02/06/2009 को 19:30
का स्रोत उपयोगकर्ता

वोट
-3

आप क्योंकि सुरक्षा समस्याओं का jQuery के साथ "बहुखण्डीय / फार्म-डेटा" रूपों नहीं भेज सकते। आप फ़्लैश या iframe के साथ यह करना चाहिए ...

18/07/2010 को 14:07
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more