我忙着从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>";
});
}
答案 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;
});
}