jQuery AJAX форма за подаване

Имам форма с име orderproductForm и неопределен брой входове.

Искам да направя някакъв вид jQuery.get или ajax или нещо подобно, което да извика страница чрез Ajax и да изпрати всички входни данни от формата orderproductForm.

Предполагам, че един от начините би бил да се направи нещо като

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

Въпреки това не знам точно всички входове на формуляра. Има ли функция или нещо, което просто да изпраща ВСИЧКИ входове на формуляра?

Това е проста справка:

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

});

Надявам се да ви помогне.

Коментари (20)
Решение

Можете да използвате функциите ajaxForm/ajaxSubmit от Ajax Form Plugin или функцията jQuery serialize.

AjaxForm:

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

или

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

ajaxForm ще се изпрати, когато се натисне бутонът за изпращане. ajaxSubmit се изпраща незабавно.

Serialize:

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

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

Документацията за сериализация на AJAX е тук.

Коментари (9)

Съществува и събитието submit, което може да се задейства по следния начин $("#form_id").submit(). Ще използвате този метод, ако формата вече е добре представена в HTML. Просто ще прочетете страницата, ще попълните входовете на формуляра с неща, след което ще извикате .submit(). Ще се използват методът и действието, дефинирани в декларацията на формуляра, така че не е необходимо да ги копирате във вашия javascript.

примери

Коментари (3)