jQuery AJAX iesniegt formu

Man ir veidlapa ar nosaukumu orderproductForm un nenoteiktu ievades datu skaitu.

Es gribu veikt kādu jQuery.get vai ajax vai ko tamlīdzīgu, kas izsauktu lapu, izmantojot Ajax, un nosūtītu visus veidlapas orderproductForm ievades datus.

Es domāju, ka viens no veidiem būtu darīt kaut ko līdzīgu.

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

Tomēr es precīzi nezinu visas veidlapas ievades. Vai ir kāda funkcija vai kaut kas tāds, kas vienkārši nosūtītu VISUS veidlapas ievades datus?

Šī ir vienkārša atsauce:

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

});

Es ceru, ka tas jums palīdzēs.

Komentāri (20)
Risinājums

Varat izmantot funkcijas ajaxForm/ajaxSubmit no Ajax Form Plugin vai jQuery serialize funkciju.

AjaxForm:

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

vai

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

ajaxForm nosūtīs, kad tiks nospiesta iesniegšanas poga. ajaxSubmit nosūta uzreiz.

Serialize:

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

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

AJAX serializācijas dokumentācija ir šeit.

Komentāri (9)

Ir arī iesniegšanas notikums, ko var aktivizēt šādi $("#form_id").submit(). Šo metodi izmantosiet, ja veidlapa jau ir labi attēlota HTML formātā. Jūs vienkārši nolasītu lapu, aizpildītu veidlapas ievades ar informāciju un pēc tam izsauktu .submit(). Tā izmantos veidlapas deklarācijā definēto metodi un darbību, tāpēc jums nav nepieciešams to kopēt savā javascript.

piemēri

Komentāri (3)