テキストフィールドの配列を持つフォームがあります。ユーザーは(javascriptを介して)任意の数のテキストフィールドをフォームに追加できます。フォームを送信して戻るボタンを押すと、フォームは最初にレンダリングされたときに元のフォームにあったフィールドのみで表示されます(追加されたテキストフィールドはすべて失われます)。ユーザーがフォームを送信したときの状態で戻るボタンを使用できるようにするための最良の方法は何ですか?どんなアイデアでも大歓迎です。私が試したいくつかのことは次のとおりです。
- フォームデータをCookieに入れます(これはいくつかの理由でうまく機能しませんが、私にとって最大のキラーは、Cookieのサイズが4Kに制限されていることです)
- フォームデータをセッションに入れる
- AJAXを介してフォームを送信し、履歴を管理します
助けてくれてありがとう。私のウェブサイトhttp://fishtale.org/formtest/f1.phpにテストフォームを投稿しました。また、ここに私が言及した振る舞いを示す簡単なフォームがあります:
<form action="f2.php" method="post">
<input type="text" name="text[]" id="text1"/>
<input type="submit" name="saveaction" value="submit form" />
</form>
<a href="f2.php" id="add_element">Add Form Element</a>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" ></script>
<script type="text/javascript" >
$('#add_element').click(function (event) {
event.preventDefault();
$('#text1').after('<input type="text" name="text[]" />');
});
</script>
これは、私がしばらく前に投稿した質問「戻るボタンでフォームデータを残すための最良の方法」に似ていますが、このフォームの要素はユーザーによって変更されます。