我需要调用一个javascript函数(包含一个jquery.ajax()调用),如showfilterresult()。在monitor.gsp页面上调用此调用,点击“filter”之类的按钮。
我正在进行的调用来自另一个页面,我需要做的是加载montoring.gsp页面,并在加载的页面上调用showfilterresult()。 (所以我想打两个电话,一个到页面,另一个到页面上的一个功能)
现在我正在这样做:
<javascript>
jQuery.ajax({
var myurl = /myapp/users/monitoring
url: myurl,
dataType: 'html',
timeout: 10000,
beforeSend: function() {
jQuery('#mydiv').html(../showspinner.gif)
},
success: function(data) {
window.location = myurl;
}
});
</javascript>
showfilterresult()
功能如下:
function showFilterResult(){
var frm=jQuery('#fromDate').val();
var to=jQuery('#toDate').val();
if($('#fromDate').val().length>0 && $('#toDate').val().length>0){
jQuery.ajax({
type:'POST',
data:{
'timeWindow':$("#timeWindow").val(),
'p1':p1,
'p3':$('#p3 option:selected').text(),
'fromDate':$("#fromDate").val(),
'toDate':$("#toDate").val(),
},
url: '/myapp/users/filterResult',
beforeSend: function() {
jQuery("#filteredResult").html('/showspinner.gif')
},
success:function(data,textStatus){
jQuery("#filteredResult").html(data)
}
});
我还需要知道如何将url参数传递给我的页面中的showfilterresult()调用,默认情况下,该函数采用monitoring.gsp页面上文本字段的值。
更新:这类似于:我有我的个人网页,我需要调用另一个网页,例如google.com,还需要传递一些参数并使用参数在google.com上调用“搜索”调用,所以一次我单击链接/按钮我的网页它不仅转发到google.com,而且还通过我传递的参数调用搜索事件,我直接看到谷歌搜索结果页面。
此致 Priyank
答案 0 :(得分:0)
不要使用原生jQuery.ajax
功能。在grails中,您有一个jquery
插件。
使用grails install-plugin jquery
安装此插件。
使用<g:javascript library="jquery" />
将第一个AJAX函数替换为:
<g:remoteFunction
controller="user"
action="monitoring"
before="$('#mydiv').html('../showspinner.gif')"
onComplete="window.location = ${createLink(
controller: 'user',
action: 'monitoring')}" />
将第二个AJAX函数替换为:
<g:remoteFunction
controller="user"
action="filterResult"
params="$('#yourFormId').serialize()"
before="$('#filteredResult').html('/showspinner.gif')"
update="filteredResult" />
也许您必须检查您的参数是否设置正确。在任何情况下,您都可以使用params
标记在第一种情况下提供参数。