0

我有一个 html 表和一个 Javascript 代码,它通过按“添加新表”按钮在此下添加一个新表。问题是当我刷新页面时,刚刚添加的表格消失了。当我刷新页面时,如何使它在添加后保留?

<table border="0" style="margin: auto; ">

<td width="60%" >

<fieldset style="width:530px; padding-left:5px; background-color:white " >

<INPUT type="button" value="Add new Table" onclick="addRow('dataTable')" />

School/University/College*</br>
<input name="school_1" type="text" size="73"/>
</br></br>
Field of Study</br>
<input name="field_1" type="text" size="73"/>
</br></br>
Specialized subjects</br>
<input name="specialized_subject_1" type="text" size="73" />
</br></br>
Degree</br>
<input name="degree_1" type="text" size="73"/>
</br></br>
Grade</br>
<input name="grade_1" type="text" size="73" />
</br></br></br>

    Attended from:&nbsp;<select name="month_1_1"> 
    <option value=" "> EMPTY </option> 
    <option value="January">January</option> 
    </select>

    <select id="year_1_1" name="year_1_1"> 
    <option value=" "> EMPTY </option>
    <option value="2009">2009</option>
   </select>&nbsp;&nbsp;&nbsp;&nbsp;

    Until:&nbsp;<select name="month_1_2"> 
    <option value=" "> EMPTY </option> 
    <option value="January">January</option>                        
    </select>

    <select name="year_1_2"> 
    <option value=" "> EMPTY </option>
    <option value="2009">2009</option>
   </select>&nbsp;&nbsp;    

</h2></font>
</fieldset>

</td>

</table>

这是Javascript代码:

 <SCRIPT language="javascript">
   function addRow(tableID) {

    var table = document.getElementById(tableID);

    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);

    var colCount = table.rows[0].cells.length;

    for(var i=0; i<colCount; i++) {

        var newcell = row.insertCell(i);

        newcell.innerHTML = table.rows[0].cells[i].innerHTML;
        //alert(newcell.childNodes);
        switch(newcell.childNodes[0].type) {
            case "text":
                    newcell.childNodes[0].value = "";
                    break;
            case "select-one":
                    newcell.childNodes[0].selectedIndex = 0;
                    break;
        }
    }
  }


</SCRIPT>
4

2 回答 2

1

JavaScript 不写入文件。因此,更改仅在您在页面上时可用。我也不希望用户能够直接编辑 HTML 文件。

如果您需要它们持久化并且更改是针对特定用户的,您可以保存它们的选项(即添加的表格数量)并让服务器端(PHP 或 w/e)在页面提供时添加表格。

于 2013-03-26T16:23:33.990 回答
1

问题是刷新基本上是从头开始请求页面,因此服务器将页面提供给客户端,就好像它是一个新请求一样。

这就是为什么您需要将页面状态(或至少是用户数据)保存在某处的原因,有多种方法可以做到这一点,使用视图状态是一种,或者会话变量是另一种。

这样,当您加载页面时,您应该做的第一件事就是将信息加载回存储的页面(在视图状态或会话中) - 请参阅 ASP.NET 或其他等效技术。

如果您无法维护页面的“状态”(即您没有运行 Web 应用程序,您只是在提供带有一些 javascript 的 HTML 页面),那么您需要确保用户无法刷新页面或弹出某些内容提醒他们他们的偏好没有被存储(无论哪种方式使用起来有点不友好)。

  • 您不能允许用户将页面写回服务器,因为这一次只适用于一个人,而且根本不是一个好习惯。
于 2013-03-26T16:32:14.470 回答