jQuery AJAX υποβολή φόρμας

Έχω μια φόρμα με όνομα orderproductForm και έναν απροσδιόριστο αριθμό εισόδων.

Θέλω να κάνω κάποιο είδος jQuery.get ή ajax ή κάτι τέτοιο που θα καλούσε μια σελίδα μέσω Ajax και θα έστελνε μαζί όλες τις εισόδους της φόρμας orderproductForm.

Υποθέτω ότι ένας τρόπος θα ήταν να κάνουμε κάτι σαν

jQuery.get("myurl",
          {action : document.orderproductForm.action.value,
           cartproductid : document.orderproductForm.cartproductid.value,
           productid : document.orderproductForm.productid.value,
           ...

Ωστόσο, δεν γνωρίζω ακριβώς όλες τις εισόδους της φόρμας. Υπάρχει κάποιο χαρακτηριστικό, συνάρτηση ή κάτι που απλά θα στέλνει ΟΛΕΣ τις εισόδους της φόρμας;

Πρόκειται για μια απλή αναφορά:

// this is the id of the form
$("#idForm").submit(function(e) {

    e.preventDefault(); // avoid to execute the actual submit of the form.

    var form = $(this);
    var url = form.attr('action');

    $.ajax({
           type: "POST",
           url: url,
           data: form.serialize(), // serializes the form's elements.
           success: function(data)
           {
               alert(data); // show response from the php script.
           }
         });

});

Ελπίζω να σας βοηθήσει.

Σχόλια (20)
Λύση

Μπορείτε να χρησιμοποιήσετε τις συναρτήσεις ajaxForm/ajaxSubmit από το Ajax Form Plugin ή τη συνάρτηση serialize της jQuery.

AjaxForm:

$("#theForm").ajaxForm({url: 'server.php', type: 'post'})

ή

$("#theForm").ajaxSubmit({url: 'server.php', type: 'post'})

ajaxForm θα στείλει όταν πατηθεί το κουμπί υποβολής. ajaxSubmit στέλνει αμέσως.

Serialize:

$.get('server.php?' + $('#theForm').serialize())

$.post('server.php', $('#theForm').serialize())

Η τεκμηρίωση σειριοποίησης AJAX βρίσκεται εδώ.

Σχόλια (9)

Υπάρχει επίσης το συμβάν submit, το οποίο μπορεί να ενεργοποιηθεί ως εξής $("#form_id").submit(). Θα'χρησιμοποιούσατε αυτή τη μέθοδο αν η φόρμα έχει ήδη αναπαρασταθεί καλά σε HTML. Θα διαβάζατε απλώς τη σελίδα, θα συμπληρώνατε τις εισόδους της φόρμας με πράγματα και στη συνέχεια θα καλούσατε την .submit(). Θα χρησιμοποιήσει τη μέθοδο και την ενέργεια που ορίζεται στη δήλωση της φόρμας, οπότε δεν χρειάζεται να την αντιγράψετε στο javascript σας.

παραδείγματα

Σχόλια (3)