私は、GSP(actionSubmit)のボタンを押して(javascript関数の呼び出しを含む)終了時にdivを更新したいという状況があります。 。私は最終的に最終的にコントローラでresultResultsパラメータとdivを結果(現在動作している)にレンダリングします。Grails - remoteSubmit内のjavascript呼び出しでdivをレンダリングする
問題は、私は(おそらく)私のactionSubmitをremoteFormにラップする必要があるということです。しかし、どうすればいいですか: 1)javascriptメソッドはonClickに既に存在しています 2)コントローラでページをレンダリングします。
コントローラでラップしてみると、remoteFormアクションが終了し、javascriptアクションが「ハング」して終了しません。
アイデア?
List.gsp
<g:actionSubmit type="button" value="Ping All" onclick="getIds('contactList');"/>
function getIds(checkList)
{
var idList = new Array();
jQuery("input[name=" + checkList + "]:checked").each
(
function() {
idList.push(jQuery(this).val());
}
);
$.ajax({
url: "pingAll",
type:"GET",
data:{ids:JSON.stringify(idList)}
});
}
コントローラ:
1)あなたはGrailsのリモートタグ(formRemote、remoteFieldなどの使用を避けることができます:あなたはカップルのオプションがあり
def pingAll() {
String ids = params.ids
if(ids == "[]") {
render(template:'searchResults', model:[searchResults:""])
return
}
def idArray = contactService.formatIDString(ids)
idArray.each {
def contactInstance = Contact.get(Integer.parseInt(it))
emailPingService.ping(contactInstance)
}
/**
* Added this on 3/13. Commented out line was initial code.
*/
def searchResults = contactSearchService.refactorSearchResults(contactSearchService.searchResults)
render(template:'searchResults', model:[searchResults:searchResults, total:searchResults.size()])
}
ビンゴのjavascriptエントリです。私はpingAllコール中に私のサービス変数を更新し、JavascriptでHTMLリフレッシュを処理することができました。ありがとうございました! – user82302124