jquery ajax не отправляет даты

#jquery #ajax

#jquery #ajax

Вопрос:

Я надеюсь, что кто-нибудь сможет помочь мне с этой проблемой, с которой я сталкиваюсь:

У меня есть вызов ajax следующим образом:

 $(document).ready(function(){  
    $("#booking").submit(function() {
        var arrival   = $('#arrival').attr('value');
        var departure = $('#departure').attr('value');
        var ap_ID     = $('#ap_ID').attr('value');

        $.ajax({
          type: "POST",
          url: "ajax/val_booking.php",
          data: "arrival="  arrival  "amp;departure="  departure  "amp;ap_ID="   ap_ID,
        });

        return false;
    });
});
  

Все поля в html-форме имеют атрибут «name».

При отправке информации ap_ID отправляется, но arrival и departure пусты (проверено с помощью Firebug).

Также используется serialize() , но результат тот же.

Кто-нибудь знает, в чем может быть проблема или что я могу делать неправильно?

Спасибо всем за вашу помощь.

PS: я использую datepicker

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

1. Вы пробовали .val() вместо .attr()

2. Я бы предложил опубликовать HTML-код для элементов прибытия и отправления.

3. Привет, Джейком, не мог бы ты быть более конкретным, пожалуйста?

4. Джейсон Маккрири. Результат тот же … пустые поля.

Ответ №1:

Попробуйте вот так:

 $('#booking').submit(function() {  
    var arrival = $('#arrival').val()  
    var departure = $('#departure').val();  
    var ap_ID = $('#ap_ID').val(); 
    $.ajax({  
        type: 'POST',  
        url: 'ajax/val_booking.php',  
        data: { 
            arrival: arrival, 
            departure: departure, 
            ap_ID: ap_ID 
        },
        success: function(result) {
            alert('success');
        }
    });  
    return false;  
});
  

или, если вы хотите отправить все значения формы, вы могли бы использовать .serialize() функцию:

 $('#booking').submit(function() {  
    $.ajax({  
        type: 'POST',  
        url: 'ajax/val_booking.php',  
        data: $(this).serialize(),
        success: function(result) {
            alert('success');
        }
    });  
    return false;  
});
  

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

1. Я уже пробовал функцию .serialize раньше, но это не сработало. Я попытался воспользоваться вашим предложением, и теперь оно работает. По некоторым причинам ни одно из других предложений не работает. Большое вам спасибо.

Ответ №2:

В конце «данных» стоит запятая:прибытие=» arrival «amp;отправление=» departure «amp;ap_ID=» ap_ID,»

Уберите запятую, и все должно быть хорошо.