Обработка данных в HTML без серверного кода (с использованием только Javascript) - PullRequest
0 голосов
/ 06 февраля 2009

Мне просто интересно, есть ли способ сделать это:

У меня есть форма на веб-странице, после того как пользователь отправляет форму, страница перенаправляется на другую статическую HTML-страницу.

Есть ли способ манипулировать данными на второй HTML-странице без помощи какого-либо серверного кода?

Я имею в виду, могу ли я отобразить данные формы, которые пользователь отправил на второй странице?

Конечно, должна быть навигация, а не какой-нибудь Ajax-код для загрузки второй страницы (с помощью которой было бы легко манипулировать данными).

Ответы [ 4 ]

2 голосов
/ 06 февраля 2009

Вы можете использовать <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>
1 голос
/ 06 февраля 2009

Вы можете получить доступ к параметрам GET для страниц из JavaScript ( window.location.search , который вам все еще нужно проанализировать), и использовать его для передачи некоторых переменных на статическую страницу.

(я полагаю, что нет способа получить доступ к содержимому POST.)

Вы также можете прочитать и установить значения файлов cookie из JavaScript.

Если вы находитесь в наборе фреймов, где «родительская» страница всегда находится вокруг вас, вы потенциально можете также хранить там информацию (кросс-фрейм-скриптинг довольно сложен, и я постараюсь этого избежать).

0 голосов
/ 06 февраля 2009

Если вы отправите форму через GET, да, вы можете получить эту информацию из js.

Есть плагин jQuery, который делает это, но если вы хотите, вы можете свернуть свой, это не так сложно.

Просто получите location.href и разбейте его, используя «?»

затем разделите снова, используя "&"

Теперь для каждого значения делим на «=». Тогда у вас будет массив с именем запроса и значением его.

edit: Google для javascript get querystring, чтобы найти десятки реализаций.

0 голосов
/ 06 февраля 2009

Если у вас есть первая страница, отправьте форму с действием GET, вы получите URL, который выглядит следующим образом:

http://tempuri.org/Page2.html?param1=value1&param2=value2

Затем вы можете использовать JavaScript на Page2.html, который считывает параметры строки запроса и отображает их на странице.

...