У меня есть форма с массивом текстовых полей. Пользователь (через 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>
Это похоже на вопрос, который я опубликовал некоторое время назад, Лучший способ для обратной кнопки для выхода из данных формы, однако, эти элементы формы изменены пользователем.