Изменение неопределенных переменных AJAX, чтобы публикация работала - PullRequest
1 голос
/ 26 января 2012

У меня есть несколько условных переменных в следующем коде. Например, если переменная shipping == "true", тогда существуют shippingAddress1, shippingAddress2 и т. Д. Но, если shipping == "false", эти переменные не определены и оставлены пустыми. Моя проблема в том, что когда я пытаюсь опубликовать сообщение, я получаю сообщение об ошибке js, потому что некоторые переменные не определены. Есть ли способ отправить их через бланк?

$.post( 'reserveAPickupAppointmentCreatePickup.php', {
    'location': appointmentLocation,
    'appointmentAddress1': appointmentAddress1,
    'appointmentAddress2': appointmentAddress2,
    'serviceType': serviceType,
    'shipping': shipping,
    'shippingAddress1': shippingAddress1,
    'shippingAddress2': shippingAddress2,
    'shippingCity': shippingCity,
    'shippingState': shippingState,
    'shippingZip': shippingZip,
    'startTime': startTime,
    'endTime': endTime,
    'date': date,
    'estimatedSize': appointmentSize,
    'highValueItems': highValueItems,
    'insuredItems': insuredItems,
    'tools': tools,
    'presentAtAppointment': presentAtAppointment,
    'contactName': contactName,
    'contactPhone': contactPhone,
    'contactEmail': contactEmail,
    'itemList': itemList,
    'studentPhone': studentPhone
},

Ответы [ 3 ]

2 голосов
/ 26 января 2012

Добавьте их динамически:

var data = {
    location: appointmentLocation,
    appointmentAddress1: appointmentAddress1,
    appointmentAddress2: appointmentAddress2,
    serviceType: serviceType,
    shipping: shipping
    // etc.
};

if(shipping) {
    data.shippingAddress1 = shippingAddress1;
    data.shippingAddress2 = shippingAddress2;
    // etc.
}

$.post('reserveAPickupAppointmentCreatePickup.php', data);
2 голосов
/ 26 января 2012

Установите разумные значения по умолчанию для переменных, которые вы используете.Если это строка, по умолчанию это пустая строка.В общем случае не используйте переменные, если они не были определены в какой-то момент.

0 голосов
/ 26 января 2012

В идеале вы должны объявлять все свои переменные, но вы всегда можете сделать что-то вроде:

'foo' : foo || null,
...

Не уверен, понравится ли $.post.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...