【问题标题】:Grails: save to Database without page reloadingGrails:保存到数据库而不重新加载页面
【发布时间】:2012-06-16 12:15:15
【问题描述】:

如何在不重新加载页面的情况下将文本字段和复选框保存到数据库?

只需单击按钮,然后单击它在数据库中。而已。我不明白。这意味着当我有一个输入内容的文本字段 -> 然后单击按钮时,文本字段中的内容应该在数据库中并且应该什么都不做(例如不重新加载页面或转到顶部)。

我不明白。

编辑:

当我在标准 create.gsp 中有一个带有 id="testid"<div> 标记时:

def create() {
  def mytestInstance = new Mytest(params)
}

应该保存这部分的<g:remoteLink> 看起来像:

<g:remoteLink class="button" name="myForm" update="testid"
              url="[controller:'mytest', action: 'create']" value="....." />

这不起作用,因为页面正在刷新或类似的东西,并且这些东西没有存储在数据库中,而且它们不再存在于文本字段中。

【问题讨论】:

    标签: database grails save


    【解决方案1】:

    您应该能够使用the formRemote tag 通过 Ajax 将数据发送到控制器

    编辑

    正如该页面上所说的那样;

    此标签还需要使用&lt;g:javascript/&gt;(link) 或&lt;g:setProvider/&gt;(link) 标签。请参阅AJAX section of the user guide 了解更多信息。

    你做到了吗?

    【讨论】:

    • 嗨蒂姆,谢谢你的回答。好吧,当我在标准 create.gsp 中有一个带有 id="testid" 的
      -tag 时:code def create() { def mytestInstance = new Mytest(params) } /code 应该保存这部分看起来像: 这不起作用,因为页面正在刷新或类似的东西,并且这些东西没有存储在数据库中,而且它们不再在文本字段中。
    • @manuzi1 代码最好添加到上面的现有问题中(您可以编辑它)。在 cmets 中无法读取 :-(
    • 好吧,我做到了:D 对不起,我是新来的
    • @manuzi1 不用担心 :-) 您是否完成了它在 formRemote 页面上说您需要做的事情? (更新了我的答案以指向他们)
    • 好的呵呵。是的,我想是的,因为我使用了 jQuery。或者这是否意味着 formRemote 标签必须在 标签内?我在 标签中包含了 jquery 库。我不确定我是否正确。
    【解决方案2】:

    使用 &lt;g:formRemote&gt;&lt;g:submitToRemote&gt; 通过 Ajax 调用进行表单提交。

    【讨论】:

    • 嗨,Ian,也许你可以帮助我,我已经添加了一些东西 ;)
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签