以前に尋ねた質問を絞り込んで、何が悪いのかを見つけましたが、それを解決することはできません。
次のイベントが発生する前に、1つのイベント関数内で設定する必要のある変数があります。
Ajax呼び出しを介して変数を取得するため、これは発生していません。そして、私はすべてのajax設定を正しく持っていると思いますが(?)-それは起こりません。Firebugでコンソールログを使用していますが、「2」が含まれるコンソールログは、最初に作成する必要がある他のログエントリ(「1」が含まれる)の前にログに記録されます。
これは、ajax呼び出しを伴うdatepickerインスタンスの一部です。以下の完全なコード。ちなみに、私はajax呼び出しを取り出し、テストするためにハードコードされた変数を挿入しました。これは完全に機能します。したがって、正しく機能していないのはajaxです。
変数'varDate'は、ドキュメントレディ関数の外部で宣言されています。
<script type='text/javascript'>
var varDate = 'toby';
$(document).ready(function(){
...そしてここのメインコード
$('.subject-date-pick').datetimepicker({
timeFormat: 'hh:mm:ss',
startDate:'01/01/1996',
clickInput:true,
beforeShow: function(input,inst) {
var source = $("#" + inst.id).attr('source');
var source_id = $("#" + inst.id).attr('source_id');
var thing = $.ajax({
type: 'GET',
url: 'ajax_get_unavailable_dates.php',
dataType: 'text',
async: 'false',
global: 'false',
data: {
source_type: source,
source_db_id: source_id
},
success: function(msg) {
console.log("1 - got the result");
varDate = (msg)
}
});
console.log("2 - ajax complete - logging console");
console.log("Post Ajax"+varDate);
},
ここでコンソールが行うことは、最初に変数を誤ってログに記録し(SECONDログイベントを使用して)、次にdatepickerの次のイベントが発生します。その後、変数が更新され、日付ピッカーフィールドをクリックすると、正しい変数が設定されますが、これは遅すぎて適切ではありません。
だから:コンソールの結果:
Ajax呼び出しのGETリクエスト
2-ajaxcomplete-ロギングコンソール
Ajaxtobyを投稿する
1-結果を得た
..。
誰か助けますか?