我在用:

$.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/

10-09 14:54