我有一个带有下拉列表的GSP,如下所示:
<select onchange="display()" id="mv" class="wrapper-dropdown">
<option value ="AFFILIATES">AFFILIATES</option>
<option value ="CSE">CSE</option>
<option value ="DISPLAYADS">DISPLAYADS</option>
<option value ="EMAIL">EMAIL</option>
<option value ="MOBILEWEB">MOBILEWEB</option>
<option value ="ORGANIC">ORGANIC</option>
<option value ="OTHERS">OTHERS</option>
<option value ="SEM">SEM</option>
<option value ="SEO">SEO</option>
</select>
我想将以下值传递给控制器:
var m2 = document.getElementById('mv');
以下是我的控制器的摘录:
def rows = sql.rows("select * from table xyz where mv = 'SELECTED'")
应该选择什么&#39;选择&#39;被替换为,我们如何将m2从GSP传递给控制器,以便它取代&#39; SELECTED&#39;用&#39; m2&#39;从GSP传递? 我们需要remoteFunction吗?我们如何使用它?我尝试了一些事情,但我没有得到预期的结果。
答案 0 :(得分:0)
在.gsp中,您可以拨打以下电话:
function passMvToController(e){
var mvSelectedValue = $("#mv option:selected").text();
$.ajax({
type:'POST',
url:'${request.contextPath}/myController/myAction/?mv='+mvSelectedValue,
success:function(data,textStatus){},
error:function(XMLHttpRequest,textStatus,errorThrown){}
});
}
然后在你的控制器/动作中,你可以使用这样的值:
def myAction = {
...
def rows = sql.rows("select * from table xyz where mv = '${params.mv}'")
...
}
请注意,remoteFunction已被弃用,将从Grails的未来版本中删除 - 如果您计划将来升级,则需要自己处理Ajax调用。