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 ページを提供しているだけの場合)、ユーザーがページを更新したり、何かをポップアップしたりできないようにする必要があります。設定が保存されていないことを思い出させます(どちらにしても、使いにくいです)。

  • ユーザーがページをサーバーに書き戻すことを許可することはできません。これは、一度に 1 人しか機能せず、実際にはまったく良い方法ではありません。
于 2013-03-26T16:32:14.470 に答える