0
我有一個變量在我的JavaScript計算在視圖中的Grails中。現在我想將這個值保存在相應位置的數據庫中。我怎樣才能做到這一點? 例如:我有參與者的地址,並通過它計算出相應的經度和緯度。我想將這些保存在我的數據庫中。請告訴我我該怎麼做。由於在視圖中生成的值存儲在視圖
我有一個變量在我的JavaScript計算在視圖中的Grails中。現在我想將這個值保存在相應位置的數據庫中。我怎樣才能做到這一點? 例如:我有參與者的地址,並通過它計算出相應的經度和緯度。我想將這些保存在我的數據庫中。請告訴我我該怎麼做。由於在視圖中生成的值存儲在視圖
你有沒有嘗試過任何東西,你可以張貼一些代碼
我能想到的東西做2種可能的方式。可能還有更多。但我會推薦第一個。
1)JavaScript的使用jQuery(如果你使用的原型或其他一些JavaScript框架...應該有東西要做到這一點AJAX調用 - 這是一個很常見的事情)
您需要在您的jQuery grails應用程序爲以下工作。
$('#buttonOrSomethingToDriveFunctionCall').click(function() {
$.ajax({
url: "${createLink(controller: 'user', action: 'saveData')}",
data: yourDataHere,
success: function(data) {
// do something on success
}
});
});
2)會寫一些groovy代碼在你的視圖直接調用控制器。這是一個壞主意;你將需要做一些事情來保存數據到頁面,它會讓你gsp的一種醜陋....意大利麪代碼
<%@ page import="controllerName" %>
<%
controllerName->saveData(dataFromjavaScript)
%>
我會去的Ajax調用也。 對此我可能會「太挑剔」,所以你可能不在意。 但是默認情況下,Ajax發出「GET」請求。 這僅限於一千個字符的數據,並不是希望HTML標準暗示您應該使用非冪等請求,也就是說會改變數據庫狀態的請求。 因此,我將使用$ .post方法,而不是$ .ajax – 2012-04-18 18:29:58
$ .post是使用$ .ajax進行POST請求的簡寫方式。使用這兩種方法沒有太大區別 - 它們都可以使用相同的底層代碼。 如果您只需要在腳本和應用程序中使用簡單的$ .post請求,則需要對ajax請求進行更深入的配置,$ .ajax通常會更好,帖子更簡單且更易於使用。 也$ .post()只支持成功的回調,$ .ajax()支持beforeSend,成功,錯誤和完整的回調。我通常更喜歡總是使用$ .ajax() – 2012-04-18 19:37:37
我明白你的觀點。我應該建議的是將$ .ajax調用的類型精確到POST。 – 2012-04-18 21:01:46