jQuery AJAX formulário de envio

Tenho um formulário com o nome *orderproductForm** e um número indefinido de entradas.

Eu quero fazer algum tipo de jQuery.get ou ajax ou qualquer coisa parecida que chame uma página através do Ajax, e enviar todas as entradas do formulário *orderproductForm**.

Suponho que uma maneira seria fazer algo como

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

No entanto, eu não sei exatamente todas as entradas de formulário. Existe algum recurso, função ou algo que apenas enviaria TODOS os inputs do formulário?

Esta é uma referência simples:

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

});

Espero que isso te ajude.

Comentários (20)
Solução

Você pode usar as funções ajaxForm/ajaxSubmit do Ajax Form Plugin ou a função jQuery serialize.

**AjaxForm***:

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

ou

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

ajaxForm será enviado quando o botão submeter for pressionado. ajaxSubmit envia imediatamente.

**"Serializar":

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

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

A documentação da serialização AJAX está aqui.

Comentários (9)

Lá's também o evento submit, que pode ser acionado assim $("#form_id").submit(). You'd use este método se o formulário já estiver bem representado em HTML. Você'd apenas lê na página, preenche as entradas do formulário com coisas, e então chama .submit(). It'irá usar o método e ação definidos no formulário's declaration, então você não'precisa copiá-lo para o seu javascript.

exemplos

Comentários (3)