jQuery AJAX-formular til indsendelse

Jeg har en formular med navnet `orderproductForm og et udefineret antal indgange.

Jeg ønsker at lave en slags jQuery.get eller ajax eller noget lignende, der ville kalde en side via Ajax, og sende alle input fra formularen orderproductForm med.

Jeg formoder, at en måde ville være at gøre noget som

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

Men jeg kender ikke præcis alle formularindgange. Er der en funktion, funktion eller noget, der bare ville sende ALLE formularinput?

Dette er en simpel reference:

// 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.
           }
         });

});

Jeg håber, det hjælper dig.

Kommentarer (20)
Løsning

Du kan bruge ajaxForm/ajaxSubmit-funktionerne fra Ajax Form Plugin eller jQuery-serialise-funktionen.

AjaxForm:

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

eller

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

ajaxForm sender, når der trykkes på knappen submit. ajaxSubmit sender straks.

Serialize:

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

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

AJAX serialisering dokumentation er her.

Kommentarer (9)

Der er også en submit-hændelse, som kan udløses på følgende måde $("#form_id").submit(). Du'ville bruge denne metode, hvis formularen allerede er godt repræsenteret i HTML. Du vil bare læse siden ind, udfylde formularindgangene med ting og derefter kalde .submit(). Den bruger den metode og handling, der er defineret i formularens deklaration, så du behøver ikke at kopiere den ind i dit javascript.

eksempler

Kommentarer (3)