2013-03-26 22 views
0

我有一個HTML表和一個JavaScript代碼,通過按下「添加新表」按鈕添加一個新的表下。問題是,當我對頁面進行翻版時,剛剛添加的表格消失了。添加後我如何才能使它保持原樣,當我正在翻頁時?添加新的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> 
+0

你不得不覆蓋現有的html頁面,我不確定那是你想要做的。或者讓用戶保存一個新的HTML頁面到服務器,這需要給該用戶的寫權限。 – gaynorvader 2013-03-26 16:20:01

回答

1

JavaScript不寫入文件。所以,只有在頁面上時才能使用更改。我不希望用戶能夠直接編輯HTML文件。

如果您需要它們來保存並且更改是針對特定用戶的,您可以保存它們的選項(即添加的表的數量),並讓服務器端(PHP或w/e)在頁面添加表格被送達。

+0

得到這樣一個例子的任何鏈接? – 33528 2013-03-26 16:24:39

+0

這取決於你想使用什麼樣的服務器端語言,以及訪問數據庫/會話的知識水平(用戶登錄)/ etc – Biotox 2013-03-26 19:23:32

1

問題是,刷新基本上是從頭開始尋找頁面,所以服務器正在給客戶端頁面,就像它是一個新的請求。

這就是爲什麼你需要保存頁面狀態(或至少是用戶數據)的地方,有多種方法可以做到這一點,使用viewstate是一個或一個會話變量是另一個。

這樣,當你加載頁面時,你應該做的第一件事是將信息加載回存儲的頁面中(在視圖狀態或會話中) - 請參閱ASP.NET或其他等效技術。

如果你沒有辦法維護一個頁面的「狀態」(即你沒有運行一個web應用程序,你只是用一些javascript提供一個HTML頁面),那麼你需要確保用戶不能刷新頁面或彈出一些提醒他們,他們的偏好不存儲(不管它使用有點不友好)。

  • 您不能允許用戶將頁面寫回服務器,因爲這樣一次只能爲一個人工作,實際上並不是很好的做法。