【问题标题】:Passing values between view and controller query in grails在 grails 中的视图和控制器查询之间传递值
【发布时间】:2014-06-02 06:07:44
【问题描述】:

我有一个 grails 控制器(Tablev1classController.groovy),它的 sql 查询如下所示:

class Tablev1classController {

def dataSource

def listjson = {
def sql = new Sql(dataSource)
def rows = sql.rows("select date_hour, total_revenue as sales, visits, marketing,
                     organic, single_page_visits , total_units from tablev1 
                     where si_flag ='Serialized' ")
sql.close()
render rows as JSON
 }
 }

在视图中,我有一个如下所示的下拉列表:

<select id="si_flag" class="wrapper-dropdown">
<option value ="serialized">serialized</option>
<option value ="non-serialized">non-serialized</option>
</select>
var si_flag = document.getElementById('si_flag');

如何将存储在变量“si_flag”中的这个值作为参数传递给控制器​​中定义的查询(在 where 条件下)。

【问题讨论】:

  • 使用 jQuery ajax。 api.jquery.com/jquery.ajax
  • 你一定是受尽折磨才得到一个和你的控制器类似的名字(这意味着你的模型被称为 Tablev1class)。
  • 那里没有选项。在我之前从事该项目的人无缘无故地给了这个名字,除了控制器的名字之外,还有很多事情需要关心,所以,我没有不用费心去改变它。不过现在肯定会考虑的。随意回答我的问题。名字无关紧要。

标签: javascript grails parameter-passing


【解决方案1】:

妮莎

首先,您必须确保将变量 si_flag 发布到控制器,因为我在您的代码中看不到 post 或 ajax 调用。

然后,重新编写您的查询如下:

def rows = sql.rows("""select date_hour, total_revenue as sales, visits, 
                       marketing,organic, single_page_visits , total_units 
                       from tablev1 
                       where"""+params?.si_flag""+""" ='Serialized' """)

然后一切正常! 确保您的 si_flag 在发布到控制器时具有一定的价值。 你可以使用

log.info(""Content of si_flag posted"+parmas.si_flag) or pritnln "Content of si_flag posted :$params.si_flag"

【讨论】:

    【解决方案2】:

    您可以使用下面的参数直接获取控制器中的表单值

    class Tablev1classController {
    
    def dataSource
    def selected=params.si_flag
    
    def listjson = {
    def sql = new Sql(dataSource)
    def rows = sql.rows("select date_hour, total_revenue as sales, visits, marketing,                   organic, single_page_visits , total_units from tablev1 where si_flag = '${selected}' ")
    sql.close()
    render rows as JSON
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多