你如何将一个JavaScript变量传递给你的Groovy控制器? [英] How do you pass a JavaScript variable to your Groovy controller?

查看:95
本文介绍了你如何将一个JavaScript变量传递给你的Groovy控制器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在Google上搜索一段时间,但找不到解决此问题的解决方案。我尝试从我的Groovy控制器中的GSP文件访问JavaScript变量,但我无法找到如何执行此操作的操作。


$ b 示例:

  // JavaScript stuff 
< script>
函数validateForm(){
var ret = false
}
< / script>

// Groovy控制器的东西
def myAction = {
println params.ret
}

我如何获得与此类似的东西?

解决方案

将一个变量传递给控制器​​:


  1. Ajax
  2. 表格提交
  3. strong> Ajax

    使用 remoteFunction




    • >

        $ {remoteFunction(controller:'actionsController',action:'implementsNewPixel',params:'\'ret = \'+ ret ')} 


    • 使用Ajax

        var ret = false; 
      jQuery.ajax({
      url:$ {createLink(controller:'actionsController',action:'implementsNewPixel')},
      data:ret =+ ret,
      success:function(data){
      alert(data);
      }
      });




    等。

    表单提交

     < script src =// ajax .googleapis.com / AJAX /库/ jquery的/ 1.9.1 / jquery.min.js>< /脚本> 
    < script>
    var ret;
    函数validateForm(){
    ret = false;
    }

    jQuery(function(){
    jQuery([name ='jftForm'])。submit(function(){
    jQuery( name ='ret'])。val(ret);
    });
    });
    < / script>

    ...
    < g:hiddenField name =retvalue =/>
    < g:submitButton name =submitvalue =提交/>
    < / g:表格>


    I have been searching on Google for a really good while, and I cannot find a solution to this problem. I am trying to access a JavaScript variable from my GSP file in my Groovy controller, but I can't find out how to do this.

    Example:

    //JavaScript stuff
    <script>
        function validateForm(){
             var ret = false
        }
    </script>
    
    //Groovy controller stuff
    def myAction = {
        println params.ret
    }
    

    How do I achieve something similar to this?

    解决方案

    Two ways to pass a variable to the controller:

    1. Ajax
    2. Form submit

    Ajax

    • Use remoteFunction

      ${remoteFunction(controller: 'actionsController' , action: 'implementNewPixel', params: '\'ret=\' + ret')} 
      

    • Use Ajax

      var ret = false;
      jQuery.ajax({
          url: "${createLink(controller: 'actionsController', action: 'implementNewPixel')}",
          data: "ret=" + ret,
          success: function (data) {
              alert(data);
          }
      });
      

    etc.

    Form submit

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
        var ret;
        function validateForm(){
            ret = false;
        }
    
        jQuery(function () {
            jQuery("[name='jftForm']").submit(function () {
                jQuery("[name='ret']").val(ret);
            });
        });
    </script>
    
    <g:form name="jftForm" controller="actionsController" action="implementNewPixel">
        ...
        <g:hiddenField name="ret" value=""/>
        <g:submitButton name="submit" value="Submit"/>
    </g:form>
    

    这篇关于你如何将一个JavaScript变量传递给你的Groovy控制器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆