jQuery AJAX submit form

Mam formularz o nazwie orderproductForm i nieokreślonej liczbie wejść.

Chcę zrobić coś w rodzaju jQuery.get lub ajax lub cokolwiek podobnego, co wywołałoby stronę poprzez Ajax, i wysłało wszystkie dane wejściowe z formularza orderproductForm.

Przypuszczam, że jednym ze sposobów byłoby zrobienie czegoś takiego jak

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

Jednak nie znam dokładnie wszystkich danych wejściowych formularza. Czy istnieje cecha, funkcja lub coś, co po prostu wysłałoby WSZYSTKIE dane wejściowe formularza?

To jest proste odniesienie:

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

});

Mam nadzieję, że to ci pomoże.

Komentarze (20)
Rozwiązanie

Możesz użyć funkcji ajaxForm/ajaxSubmit z Ajax Form Plugin lub funkcji serialize jQuery.

AjaxForm:

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

lub

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

ajaxForm wyśle po naciśnięciu przycisku wysyłania. ajaxSubmit wysyła natychmiast.

Serialize:

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

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

Dokumentacja serializacji AJAX znajduje się tutaj.

Komentarze (9)

Istnieje również zdarzenie submit, które może być wywołane w następujący sposób $("#form_id").submit(). Używałbyś tej metody, jeśli formularz jest już dobrze reprezentowany w HTML. Po prostu wczytaj stronę, wypełnij dane wejściowe formularza rzeczami, a następnie wywołaj .submit(). Użyje ona metody i akcji zdefiniowanej w deklaracji formularza, więc nie musisz jej kopiować do swojego javascriptu.

Przykłady

Komentarze (3)