2012-01-25 3 views
1

私は次のコードにいくつかの条件変数があります。たとえば、var shipping == "true"の場合、shippingAddress1、shippingAddress2などが存在します。しかし、shipping == "false"の場合、これらの変数は未定義であり、空白のままです。私の問題は、投稿しようとすると、いくつかのvarsが未定義であるため、jsエラーが発生することです。これらを空白で送る方法はありますか?投稿が有効になるようにAJAXの未定義変数を変更する

$.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 
}, 
+0

を使用すると、フォームフィールドを探している場合は、[シリアル化](http://api.jquery.com/serialize/) – epascarello

答えて

2

使用している変数に合ったデフォルト値を設定します。文字列の場合は、デフォルトで空文字列になります。一般に、ある時点で定義されていない変数は使用しないでください。

+0

を使用するので、私は1で、このいずれかを実行する必要が私は各変数を定義する時点で?私は同時にそれらのすべてをキャッチして空の文字列に設定する方法を期待していました...そして、私は空文字列を " – radleybobins

+0

私はあなたが各変数を宣言するところでそれを行います。私は一般にすべての変数をレキシカルスコープの先頭に宣言し、同時に合理的なデフォルトでそれらを定義します。はい、空の文字列はちょうど ""または "' – kinakuta

+0

ありがとう、私はあなたの助けに感謝、このメソッドを使用して終了しました!私が最後に一度にそれをすべてやったなら、私はいくつかの条件文を書く必要があり、これは簡単でした。 – radleybobins

0

理想的には、すべての変数を宣言する必要がありますが、あなたはいつものような何かを行うことができます。$.postがそれを好きになる場合

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

わからないが。

+0

どちらも分かりませんが、試してみる価値があります – radleybobins

+0

いいえ、それは好きではないようですが、試してくれてありがとう – radleybobins

2

は、動的に追加します。

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); 
+0

これは良い提案ですが、あまりにも多くの条件があります – radleybobins

+0

@radleybobins:Eh ..いいえ、それのように見えません。既に行っている作業を行い、出荷特有のものを 'if'で包み込みます。それほど難しいことではありません。 – Ryan

+0

条件文が少ない場合は、これを念頭に置いておきますが、いくつかのケースがあります。出荷は単なる例に過ぎません。変数を空文字列として定義しています私の目的 – radleybobins

関連する問題