Formulaire de soumission AJAX jQuery

J'ai un formulaire avec le nom **orderproductForm et un nombre indéfini d'entrées.

Je veux faire une sorte de jQuery.get ou ajax ou quelque chose comme ça qui appellerait une page par Ajax, et enverrait toutes les entrées du formulaire **orderproductForm.

Je suppose qu'une solution serait de faire quelque chose comme

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

Cependant, je ne connais pas exactement toutes les entrées du formulaire. Existe-t-il une fonctionnalité, une fonction ou autre qui permettrait d'envoyer TOUTES les entrées du formulaire ?

Il s'agit d'une référence simple :

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

});

J'espère que cela vous aidera.

Commentaires (20)
Solution

Vous pouvez utiliser les fonctions ajaxForm/ajaxSubmit de [Ajax Form Plugin][1] ou la fonction jQuery serialize.

AjaxForm :

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

ou

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

ajaxForm envoie lorsque le bouton submit est pressé. ajaxSubmit envoie immédiatement.

Serialize :

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

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

[La documentation sur la sérialisation AJAX se trouve ici][2].

[1] : https://jquery-form.github.io/form/ [2] : http://docs.jquery.com/Ajax/serialize

Commentaires (9)

Il y a aussi l'événement submit, qui peut être déclenché comme ceci $("#form_id").submit(). Vous utiliserez cette méthode si le formulaire est déjà bien représenté en HTML. Il suffit de lire la page, de remplir les entrées du formulaire avec des éléments, puis d'appeler .submit(). La méthode et l'action définies dans la déclaration du formulaire seront utilisées, de sorte que vous n'aurez pas besoin de les copier dans votre javascript.

exemples

Commentaires (3)