2017-02-24 10 views
0

私はmysqlからデータを取得してjquery datepickerに入れて忙しいです。 PHP側が良好です。私はgetメソッドでそれをテストし、それは動作します。だから私はJS/Jquery側と闘う。 JSは変数myTextを認識しません。しかし、私は上記を作成しました。日付ごとに価格を追加するjavascript/jquery not working

function addCustomInformation() { 

    $("#DatePicker td").filter(function() { 
    var date = $(this).text(); 
    return /\d/.test(date); 
    }).find("a, span").html(function(i, html) { 
    var myText; 
    var day = $(this).text(); 
    var month = $(".ui-datepicker-month").text(); 
    var year = $(".ui-datepicker-year").text(); 
    var date = day + " " + month + " " + year; 

    $.ajax({ 
     url : "../../../func.php", 
     type: "GET", 
     data : {check_datum: date, ItemID: <?= $_GET["ItemID"] ?>}, 
     success: function(info) 
     { 
      myText = info; 
      console.log(date + ", " + info); 
     } 
    }); 

    return html + "<br><small>$"+myText+"</small>"; 
    }); 
} 

答えて

0

success関数はコールバックであり、後で/非同期に実行されることを意味します。つまり、returnステートメントの実行時にmyText変数は設定されません。この問題を解決するには、実行します。成功関数内の復帰

function addCustomInformation() { 
    $("#DatePicker td").filter(function() { 
    var date = $(this).text(); 
    return /\d/.test(date); 
    }).find("a, span").html(function(i, html) { 
    var $el = $(this); 
    var day = $el.text(); 
    var month = $(".ui-datepicker-month").text(); 
    var year = $(".ui-datepicker-year").text(); 
    var date = day + " " + month + " " + year; 

    $.ajax({ 
     url : "../../../func.php", 
     type: "GET", 
     data : {check_datum: date, ItemID: <?= $_GET["ItemID"] ?>}, 
     success: function(info) { 
      console.log(date + ", " + info); 
      $el.html(html + "<br><small>$" + info + "</small>"); 
     } 
    }); 

    return html; 
    }); 
} 
+0

ありがとうございます。今問題は一つしかない。結果はデー​​タベースから非常に遅くロードされています。この問題を解決するにはどうすればよいですか? – Emin

+0

それはあなたのデータベースのセットアップ/クエリ、またはあなたのPHPで問題になるようですね。どれが遅くなっているのか調べる価値があるかもしれません。しかし、あなたのJavaScriptコードであることはほとんどありえません –

0

$ .ajaxは非同期関数呼び出しなので、return文を実行するとmyTextの値は設定されません。成功関数内からhtmlを更新する必要があります。

+0

は単に 'SUCCESS'機能を終了するのではなく、すでにその時点で戻ってきた' .html'関数の結果を変更します。 –

関連する問題