Как объединить данные двух форм с помощью объекта jquery

#jquery #ajax

#jquery #ajax

Вопрос:

У меня есть две формы с данными, и я пытаюсь объединить эти данные для отправки в мой Api. Данные одной формы отправляются, но я понятия не имею, как объединить данные из обеих форм и отправить в мой api.

 $(document).ready(function () {
    $("#place_order").click(function () {
        var person2 = new Object();
        person2.Title = $('#Title').val();
        person2.FirstName = $('#FirstName').val();
        person2.LastName = $('#LastName').val();

        debugger;
        /* #check1 is form id , for first form , please let me know how two use second form id #check2 */
        var person = $('#check1').serialize();

        $.ajax({
            url: 'http://192.168.1.102:1512/qlikapi/RegisterUser',
            type: 'Post',
            data: person,
            success: function(data, textStatus, xhr) {
                alert(data.ErrorMessage);
                if (data.Success) {
                    document.location.reload();  
                }
            },
            error: function (xhr, textStatus, errorThrown) {
                console.log('Error in Operation');
            }
        });
    });
});
  

Ответ №1:

 $(document).ready(function () {
    $("#place_order").click(function () {
        var person2 = new Object();
        person2.Title = $('#Title').val();
        person2.FirstName = $('#FirstName').val();
        person2.LastName = $('#LastName').val();

        debugger;
        /* #check1 is form id , for first form , please let me know how two use second form id #check2 */
        var person = {};
        var person1 = {};

         $.map($('#check1').serializeArray(), function(n, i){
           person[n['name']] = n['value'];
         });

         $.map($('#check2').serializeArray(), function(n, i){
            person1[n['name']] = n['value'];
         });

        var mergedFormObj = $.extend({},person,person1);

        $.ajax({
            url: 'http://192.168.1.102:1512/qlikapi/RegisterUser',
            type: 'Post',
            data: mergedFormObj,
            success: function(data, textStatus, xhr) {
                alert(data.ErrorMessage);
                if (data.Success) {
                    document.location.reload();  
                }
            },
            error: function (xhr, textStatus, errorThrown) {
                console.log('Error in Operation');
            }
        });
    });
});    
  

Убедитесь, что оба свойства объекта уникальны.

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

1. ashish, пожалуйста, дайте мне знать, как использовать эту строку

2. пожалуйста, можете ли вы интегрировать этот код с моим кодом. пожалуйста

3. @SanjayYadav пожалуйста, проверьте, есть ли у меня обновления в соответствии с вашими требованиями

4. да, братан, это хорошо и потрясающе, у меня есть один запрос, могу получить значение формы по-разному. разные страницы, на которых запущена одна форма index.php и один из них выполняется на home.php могу ли я получить оба значения на home.php ,, ваш код работает отлично,

Ответ №2:

Если вы более конкретны в отношении форм, используйте

 $('#detailsform,#levelForm').serialize();
  

приведенная выше строка вернет строковое значение. Нравится customId=08071992amp;cort=01amp;empId=7777

вы можете избежать нежелательных полей, добавив атрибут disabled="disabled" к полям ввода.

Если у вас нет второй формы, вы можете создать ее с помощью FormData .

Я надеюсь, что это поможет вам.

Ответ №3:

Объединение двух объектов работает следующим образом:

 var a = {someProp: "hi"};
var b = {someOtherProp: "sup?"};

var merged = $.extend({}, a, b);
//Merged will be
{   someProp: "hi",
    someOtherProp: "'sup?"
}
  

Кстати, перезагрузка страниц при успешном обратном вызове на самом деле не является целью $.ajax вызовов…