我在用:
$.post('fromDB.php', function(data) {
eval(data);
console.log(data);
updateTimer();
});
从php获取一些数组。
PHP返回什么:
var todayTimeMinutes = [0, 45, 35, 25, 40, 0, 50, 40, 40, 30, 20];
var todayTimeHours = [0, 8, 9, 10, 10, 11, 11, 12, 13, 14, 15];
var todaySectionName = ["Before School", "Period 1", "Period 2", "Formtime", "Interval", "Period 3", "Period 4", "Lunchtime", "Period 5", "Period 6", "After School"];
console.log("Excecution time: 0.00058889389038086 seconds");
console.log工作正常。当我尝试从成功函数内部的数组访问值时,它工作正常。但是,从updateTimer()访问它不起作用,并且在chrome调试器中给了我以下消息:
最佳答案
我猜您正在尝试访问updateTimer()中的todaySectionName。在这种情况下,您得到错误的原因是,todaySectionName不在updateTimer的范围内。
因此,您要么需要将updateTimer定义为成功函数中的闭包,要么需要找到其他方法将这些值传递给updateTimer。 (就像争论一样。)
因此,无论在哪里定义updateTimer,都将其签名更改为:
function updateTimer(todayTimeMinutes, todayTimeHours, todaySectionName) {
// leave this the same
}
然后将您的成功功能更改为:
$.post('fromDB.php', function(data) {
eval(data);
console.log(data);
updateTimer(todayTimeMinutes, todayTimeHours, todaySectionName);
});
关于php - 从$ .post()获取数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5202221/