jQuery $.get — автоматизировать параметры

#jquery #get

#jquery #получить

Вопрос:

Есть ли какой-либо способ автоматизировать добавление параметров в jQuery $.get ?

На данный момент я перечисляю их вручную, но что мне делать, если в форме 100 полей?

Пожалуйста, посмотрите мой комментарий в коде ниже.

$.get:

                 // How to automate this?
                var ContactName = $('#contact-name').val();                                       
                var ContactEmail = $('#contact-email').val();
                var ContactPhone = $('#contact-phone').val();
                var ContactMessage = $('#contact-message').val();

                $.get("contact-form.php", {

                    // How to automate this?
                    ContactName: ContactName,
                    ContactEmail: ContactEmail,
                    ContactPhone: ContactPhone,
                    ContactMessage: ContactMessage

                }, function() {}).success(function() {

                    // Do  stuff once email send
                })
 

Комментарии:

1. Если бы у вас была форма с сотнями полей, я бы сказал, что вам нужно изменить свою форму. 1 поле формы — это слишком много, не говоря уже о сотнях.

2. @Джейми Диксон — 100 в основном. Но я ожидаю более 30 (сбор и анализ данных).

Ответ №1:

Используйте serialize()

 $("#formID").serialize();
 

Комментарии:

1. @NewUser: У вас есть пример

Ответ №2:

Просто используйте $(«#myForm»).serialize(). см http://api.jquery.com/serialize /

 $.get("contact-form.php",$("#myForm").serialize(), function() {}).success(function() {
   // Do  stuff once email send
});
 

вы также можете использовать serializeArray(), если хотите вручную добавить некоторые параметры в сериализованную форму, см. http://api.jquery.com/serializeArray /

 var params = $("#myForm").serializeArray();
params.push({ name : "custom", value : "toto"});
$.get("contact-form.php",params, function() {}).success(function() {
       // Do  stuff once email send
});
 

Комментарии:

1. Выглядит хорошо! Вы случайно не знаете, есть ли аналогичный способ получения данных в PHP? На данный момент мой PHP-файл выглядит так: jsfiddle.net/MrTest/mgxbe

2. Вероятно, вы могли бы выполнить цикл с параметрами запроса, но не будет способа обеспечить порядок параметров в цикле … и выполнение пакетной работы с полученными данными кажется … странным. В любом случае, я не использую PHP, поэтому не могу помочь.

3. Спасибо за время и усилия.

Ответ №3:

Вам не нужно извлекать значения перед их преобразованием в объект данных, просто загрузите их прямо.

             $.get("contact-form.php", {
                ContactName: $('#contact-name').val(),
                ContactEmail: $('#contact-email').val(),
                ContactPhone: $('#contact-phone').val(),
                ContactMessage: $('#contact-message').val()
            }, function() {}).success(function() {
                // Do  stuff once email send
            })
 

Комментарии:

1. Да, но я не хочу их перечислять — есть ли способ автоматизировать процесс?