我已經閱讀了很多關於這個問題的問題,我找不到答案。將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