2012-07-03 61 views
0

我使用jQuery将行添加到了html表中,但是当我刷新浏览器时,行消失。我怎样才能让行留下来?使用jQuery将行添加到表中,但添加的行随浏览器刷新而消失

<TABLE id="dataTable" width="100%" align="center"> 
    <TR align="center" border="1"> 
     <TH></TH> 
     <TH>ID </TH> 
     <TH>Name</TH> 
     <TH>Status</TH> 
    </TR> 
    <TR align="center"> 
     <TD><INPUT type="checkbox" name="chk"/></TD> 
     <TD> 1 </TD> 
     <TD> <INPUT type="text" value="Submission 1" /> </TD> 
     <TD>Working version</TD> 
    </TR> 
</TABLE> 

<script type="text/javascript"> 

$(document).ready(function(){ 
$('#createNew').click(function() { 
    var table = document.getElementById('dataTable'); 

    var rowCount = table.rows.length; 

    $('#dataTable tr:last').after('<TR align="center"><TD><INPUT type="checkbox" name="chk"/></TD><TD>'+ rowCount + '</TD><TD> <INPUT type="text" value="Submission 1" /> </TD><TD>Working version</TD></TR>'); 
+0

的HTML是从文件中的每个页面被请求时呈现 - 如果你想将更改保存到需要在一些地方保存更改并在加载时显示它们...你使用服务器端语言吗? – ManseUK

+0

您需要以某种方式记录行的创建(例如''),然后在页面显示时再次重新创建行。你使用任何服务器端编码? – freefaller

回答

0

检查同这只是一个建议,但你可以尝试存储新行中的cookie,如所示:页
how to store an array in jquery cookie?

这种方式后刷新你将得到你的行(当然,你需要读取cookie并在页面再次加载时添加行)。

但是,最好的解决方案是使用服务器端代码将新行存储到数据库中,并在每次刷新页面时加载它们,这样,每个访问该页面的所有人(或仅针对特定用户如果您将添加用户标识,但这是关闭您的问题)。

检查从@Kell答案的文章,这是很容易实现:)

0

只有jQuery你不能。

例如,您需要将更改保存在数据库中。

编辑:或者你可以使用PHP,$ _SESSION,$ _COOKIE ....我不知道,你有很多方法,但不是只有jQuery。

0

这将取决于您从哪里获取数据以创建表格。如果您从数据库中检索数据并将其粘贴到tablem中,则需要通过制作ajax回调函数将数据与jquery插入到数据库中。

看到this for details

0

可以使用.data功能绑定的数据表,然后多次复制的可能吗? .data防止数据从内存泄漏,你可以在api.jquery.com