0

jQuery で Ajax を呼び出そうとしていますが、ページの読み込み時に PHP で設定された変数を 2 つの個別の関数に渡して、カレンダーを月単位で前後に移動する必要があります。

var ajax_load = "Loading...",
    loadUrl = "calendar_backend.php",
    month = parseInt(<?php echo $month ?>);
    console.log(month);
    month = <?php echo $month ?>;

$("#calendar_box").on("click",'#next_month',function(){  
    console.log(month);
    $("#calendar")  
        .html(ajax_load)  
            .load(loadUrl, "month=" + month + "&go=next");
    var month = ++month;

    console.log(month);
});

$("#calendar_box").on("click",'#previous_month',function(){  
    $("#calendar")  
        .html(ajax_load)  
            .load(loadUrl, "month" + month + "&go=previous");  
    var month = --month;
});

これをデバッグしようとするコンソール呼び出しがあり、最初の .log() から 4 が 2 番目から undefined を取得し、3 番目から NaN を取得します。これら 3 つから、変数が .on() ハンドラー関数に渡されていないことがわかります。

カレンダー生成ページは index ページに include_once され、AJAX を使用してその月の正しいデータが再生成されます。オフセットする必要がある現在の月からの距離を知るには、get 文字列で渡された月が必要です。

助けてくれてありがとう!!

4

1 に答える 1

0

var関数本体内でキーワードを使用しないでください。var内で新しい変数をインスタンス化しますsuccess function。そして、あなたは減少/増加演算子を間違って使用していますmonth++;month--;

var ajax_load = "Loading...",
    loadUrl = "calendar_backend.php",
    month = parseInt(<?php echo $month ?>);
    console.log(month);
    month = <?php echo $month ?>;

$("#calendar_box").on("click",'#next_month',function(){  
    console.log(month);
    $("#calendar")  
        .html(ajax_load)  
            .load(loadUrl, "month=" + month + "&go=next");
    month++; // Removed var and incressing

    console.log(month); 
});

$("#calendar_box").on("click",'#previous_month',function(){  
    $("#calendar")  
        .html(ajax_load)  
            .load(loadUrl, "month" + month + "&go=previous");  
    month--; // Removed var and decressing
});
于 2012-04-05T20:26:51.283 に答える