先週、私はjavascriptで遊んできたので、私の知識は非常に限られています。私と忍耐してください:-)
私はMySqlに日付とユーザーIDを格納する簡単な予約システムを書いています。指定された日がすでに予約されているかどうかをチェックします(yesの場合は、0を返すよりも空いている場合、UserIdを返すisTicket.phpを返します)。 日数の範囲を選択することが可能で、複数の警告を送信したくない場合は、選択した日に他のユーザーが既に予約されている場合、変数otherEventFoundをfalseに設定します。私は「アウトサイド」ポスト機能のこの変数を使用しようとしたと2つの可能性があります下に示すように
:私のスクリプトは、ライン>>アラートが含まれている場合
1)(「otherEventFoundが.. 。< <それが動作します。
2)私はこの行を削除した場合、それはしません。
私は少しdisorientatedだ。この追加の警戒ラインは、より一般的に非常に重要である、なぜ誰かが説明することができますpost.success関数から親関数の変数を上書きすることは可能ですか?
アラートラインで動作するよりも純粋な運が良ければ、javascriptで適切な方法は何ですか?
parent function
...
var otherEventFound = new Boolean();
var do_the_booking = new Boolean();
otherEventFound = false;
do_the_booking = false;
for (var i = myStart.getDfJ(); i <= myEnd.getDfJ(); i++)
{
// conver i to MySQL format yyyy-mm-dd
var milliseconds = 1000 * 60 * 60 * 24 *i;
var j = new Date(milliseconds);
var strID = j.toYMD();
// and ask server if there is other event on this day
$.post("isTicket.php", { theDay: strID },
function(answ){
if (parseInt(answ) == 0){
do_the_booking = true;
}
else {
if (!(parseInt(answ) == currentUserId)){
otherEventFound = true;
}
}
}
);
}
alert ("otherEventFound " + otherEventFound + " do_the_booking " + do_the_booking);
if (otherEventFound==true) {
alert ("There is not yours event booked on this day.");
do_the_booking=false;
};
if (do_the_booking==true){
var x=window.confirm("Do you want to book on this/these day/s?")
if (x) {
// ... do something like $.post("setTicket.php" ...
}
}
'新しいブールは、()'それはちょうど、ブールリテラル 'true'にまたは' falseを割り当て、予期しない方法で動作します、悪い考えです'' var'宣言の中にあります。 ['Boolean'オブジェクト](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Boolean)を使うと、条件文でそれを確実に使用することはできません。' if(new Boolean(false )){} 'は、オブジェクトがtrueに強制されるため、常にtrueに評価されます。 JavaScriptは厳密な型定義を使用しないので、格納する前にどのような変数値を宣言する必要はありません。 –