将表格html内容传递给下一个gsp页面

时间:2011-12-14 06:00:38

标签: jquery html grails groovy

我需要传递一个完整的html表内容并尝试将其作为参数传递给ajax调用中的下一个gsp页面

jQuery.ajax({
          type:'POST',
          data:{'table_cart': $("#table_cart").html()},
          url: '/gra/ar_request/nextpage',
          beforeSend: function() {
                   jQuery('#templateDiv').html('show spinner')
                },
          success:function(data,textStatus){jQuery('#templateDiv').html(data);},
          error:function(XMLHttpRequest,textStatus,errorThrown){}});
    return false;

当我尝试在下一页中检索该值时,我收到各种错误,例如“XML格式不正确,期待img标记。,;缺少..etc”

我只想按照以下方式阅读下一页的值

var table_content = ${table_cart}

在值周围给出单引号会产生错误。我想知道如何将表的html内容传递给另一个gsp,还有更好的方法吗?

nextpage.gsp上的错误详情 失踪 ;在声明之前 http://cdn.jquerytools.org/1.2.6/full/jquery.tools.min.js 第29行

I am doing 
<script>
    var tbcont = ${rolecart}
</script>

我从操作中打印出控制台上的内容,它具有正确的内容。即表中的所有标签,我是否需要对html内容进行编码? 从控制台准确显示内容:

<thead>
                <tr>

                  <th scope="col" style="width: 40%">
                    <span class="column-sort">
                      <a href="#" title="Sort up" class="sort-up"></a>
                      <a href="#" title="Sort down" class="sort-down"></a>
                    </span>
                  Role
                  </th>
                  <th scope="col" style="width: 55%">
                    <span class="column-sort">
                      <a href="#" title="Sort up" class="sort-up"></a>
                      <a href="#" title="Sort down" class="sort-down"></a>
                    </span>
                 Description
                  </th>
                </tr>
              </thead>
              <tbody>

              <tr class="odd">

                    <td style="width: 40%;"><span style="color: black;">unix_server_read</span></td>
                    <td style="width: 55%;"><span style="color: black;">Role with UNIX based entitlements having read access</span
></td>
                </tr><tr style="color:black"></tr><tr style="color:black"> <td colspan="1">End Date: <input style="width:70px" nam
e="ar_enddate" value="" id="ar_enddate" type="text"><img src="images/icons/fugue/calendar-month.png" height="16" width="16"></td><
/tr><tr style="height:8px"></tr><tr class="even">

                    <td style="width: 40%;"><span style="color: black;">unix_server_write</span></td>
                    <td style="width: 55%;"><span style="color: black;">Role with UNIX based entitlements having write access</spa
n></td>
                </tr><tr style="color:black"></tr><tr style="color:black"> <td colspan="1">End Date: <input style="width:70px" nam
e="ar_enddate" value="" id="ar_enddate" type="text"><img src="images/icons/fugue/calendar-month.png" height="16" width="16"></td><
/tr><tr style="height:8px"></tr></tbody>

1 个答案:

答案 0 :(得分:0)

不要将html传回服务器。相反,提取相关参数(使用<g:form>)并重新渲染AJAX调用中的文件内容。

您可以通过将table的内容提取到grails-template file来实现这一目标。这样,您可以在AJAX调用中呈现表的内容。

在您的主gsp文件中,您的表格如下所示:

<table>
     <g:render template="yourTableContent" model="${[..]}" />    
</table>

_yourTableContent.gsp文件位于gsp所在的同一位置。

在您从客户端调用的操作中,您可以调用:

def nextpage = {
    [..]
    render(template:"yourTemplateContent", model: [...])
}