我想从php文件(通过ajax或json)获得一个简单的数据(实际上是一个数字)到jQuery中的一个虚拟数据。
我尝试了很多Ajax和jSon方法......没有成功。
我明白了:
while (data.length < totalPoints)
{
var prev = data.length > 0 ? data[data.length - 1] : 60;
var y = prev + Math.random() * 10 - 5;
if (y < 0)
y = 0;
if (y > 60)
y = 60;
data.push(y);
}
我想替换&#34; Math.random()* 10 - 5&#34;在一个php文件中有一个数字,其中有一个简单的数字来自MySql。
这个循环第一次进行60次,每15秒进行一次。
这不起作用。 php文件是调用并返回数字,但是&#39; fromPhp&#39;是空的。
var data = [],totalPoints = 60;
function getRandomData() {
if (data.length > 0)
data = data.slice(1);
var fromPhp = '';
var y;
while (data.length < totalPoints) {
var prev = data.length > 0 ? data[data.length - 1] : 60;
$.get('assets/get_number.php', function (theNumber) {
fromPhp = theNumber;
});
y = prev + fromPhp;
if (y < 0)
y = 0;
if (y > 60)
y = 60;
data.push(y);
}
var res = [];
for (var i = 0; i < data.length; ++i)
res.push([i, data[i]])
return res;
}
实际上所有数字(y)都是&#39; 60&#39;
答案 0 :(得分:1)
尝试此代码并检查控制台。它会让你理解为什么代码不起作用:
function getRandomData() {
if (data.length > 0)
data = data.slice(1);
var fromPhp = '';
var y;
while (data.length < totalPoints) {
var prev = data.length > 0 ? data[data.length - 1] : 60;
$.get('assets/get_number.php', function (theNumber) {
fromPhp = theNumber;
console.log("Number loaded from php");
});
y = prev + fromPhp;
console.log("Number added to the Y");
if (y < 0)
y = 0;
if (y > 60)
y = 60;
data.push(y);
}
var res = [];
for (var i = 0; i < data.length; ++i)
res.push([i, data[i]])
return res;
}
我相信这个答案可以启发你如何从php获取数据到javascript:How to pass variables and data from PHP to JavaScript? 我不知道你想要实现什么目标,但我建议使用已接受答案的第二或第三选项(直接将数据回显给JavaScript)