Обработка данных в HTML без серверного кода (с использованием только Javascript)
Мне просто интересно, есть ли способ сделать это:
У меня есть форма на веб-странице, после того, как пользователь отправляет форму, страница перенаправляется на другую статическую HTML-страницу.
Есть ли способ манипулировать данными на второй HTML-странице без помощи какого-либо серверного кода?
Я имею в виду, могу ли я отобразить данные формы, которые пользователь отправил на второй странице?
Конечно, должна быть навигация, а не некоторый Ajax-код для загрузки второй страницы (с помощью которой было бы легко манипулировать данными).
4 ответа
Вы можете использовать <form>
с помощью метода GET, чтобы перейти на другую статическую HTML-страницу с некоторыми параметрами запроса, а затем получить эти параметры с помощью JavaScript:
Первая страница:
<form method="GET" action="page2.html">
<input type="text" name="value1"/>
<input type="text" name="value2"/>
<input type="submit"/>
</form>
Вторая страница:
<script type="text/javascript">
function getParams() {
function decode(s) {
return decodeURIComponent(s).split(/\+/).join(" ");
}
var params = {};
document.location.search.replace(
/\??(?:([^=]+)=([^&]*)&?)/g,
function () {
params[decode(arguments[1])] = decode(arguments[2]);
});
return params;
}
var params = getParams();
alert("value1=" + params.value1);
alert("value2=" + params.value2);
// or massage the DOM with these values
</script>
Вы можете получить доступ к GET-параметрам страниц из JavaScript (window.location.search, который вам еще нужно проанализировать), и использовать его для передачи некоторых проверяемых объектов на статическую страницу.
(Я полагаю, что нет способа получить доступ к содержимому POST.)
Вы также можете прочитать и установить значения куки из JavaScript.
Если вы находитесь в наборе фреймов, где "родительская" страница всегда остается вокруг, вы потенциально можете хранить там информацию (также кросс-фрейм-скриптинг довольно сложен, и я постараюсь избежать этого).
Если вы отправите форму через GET, вы можете получить эту информацию из js.
Есть плагин jQuery, который делает это, но если вы хотите, вы можете бросить свой собственный, это не так сложно.
Просто найдите location.href и разбейте его, используя "?"
затем снова разделите, используя "&"
Теперь для каждого значения делим на "=". Тогда у вас будет массив с именем запроса и значением его.
изменить: Google для javascript get querystring
найти десятки реализаций.
Если у вас есть первая страница, отправьте форму с действием GET, вы получите URL, который выглядит следующим образом:
http://tempuri.org/Page2.html?param1=value1¶m2=value2
Затем вы можете использовать JavaScript на Page2.html, который считывает параметры строки запроса и отображает их на странице.