我已经阅读了很多关于这个问题的问题,我找不到答案。将jquery发布数据保存在一个变量中
我想做的事情(我认为这将是2011年最简单的事情)是从我的数据库中获取一些信息与jquery和ajax并将其保存在一个变量,以便后来做一些东西。 5个小时后,我仍然在这里。这是不可能做到的吗?
这个典型的例子是:
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
alert("Data Loaded: " + data);
});
和
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
$("somediv").html(data);
});
这样的伟大工程......如果你只使用值现在忘掉它。
现在我不想在页面或警告框中显示信息,我只是想将它保存在一些变量中,以便稍后可以进行一些计算。
当我将数据分配给变量时,值总是丢失。读了一堆关于这个答案后,显然没有办法返回数据,因为该功能是异步和工作方式不同,我们不知道它是如何工作等
比如我尝试这样做:
return data from jquery $.post
但这并不适用于我。或者我没有正确理解,这是一个解释还是一个例子?我想输入回叫,还是应该用一些东西来代替它?
有人说调用另一个函数喜欢这里:
这也不能工作,数据传递给函数,我可以用它存在,但再次,如果我在一个变量保存它它迷路了,并且没有办法返回函数,因为我从哪里得到函数返回的内容?
最后我说你知道什么,我只是把它放在一个隐藏的字段中,然后我就可以访问它。那也没用,我可以把价值放在这个领域,但是当我尝试访问它时......它还没有。
我不应该使用$ .post? $ .ajax是否有所作为?我怎样才能做到这一点? ajax真的很难 - 从数据库中获取一个值并将其保存在JavaScript中以备后用?大家是否马上使用它?这真的很难实现吗?
他已经尝试了这种方法,但是使用隐藏字段而不是全局变量。问题不是范围,而是时间。 – Guffa 2011-05-15 20:46:15
我不会将任何数据放入隐藏字段,这可能会导致意外的行为,因为您返回的代码可能包含特殊字符,如<,>,“等等。更好的解决方案是使用jQuery [.data(key,value)]] (http://api.jquery.com/data)将数据附加到元素上 – sled 2011-05-15 20:54:20
这是真的,但它并不重要,隐藏字段只是用作全局存储,所以如果它不起作用那么,它也不会与全局变量一起工作 – Guffa 2011-05-15 20:59:46