从$ .post()获取数组

时间:2011-03-05 06:48:58

标签: php javascript arrays debugging jquery

我正在使用:

$.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调试器中给我这条消息:enter image description here

1 个答案:

答案 0 :(得分:5)

我猜你正试图在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);
});