每个日期添加价格javascript / jquery无效

时间:2017-02-24 15:30:56

标签: javascript jquery jquery-ui datepicker

我忙着从mysql获取数据并放入jquery datepicker。 php方面很好。我用get方法测试它,它的工作原理。所以我在JS / Jquery方面挣扎。 JS没有看到变量myText。但我在上面创建了一个。

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>";
  });
}

2 个答案:

答案 0 :(得分:0)

$ .ajax是一个异步函数调用,因此在执行return语句时不会设置myText的值。您需要在成功函数中更新您的html。

答案 1 :(得分: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;
  });
}