Передача данных между формами на различных страницах, используя JavaScript
В качестве простого примера, предположим, что наша страница запрашивает Ф.И.О пользователя, затем использует его, чтобы обратиться к пользователю на следующих страницах.
Можно взять Ф.И.О, используя форму, затем использовать JavaScript для передачи Ф.И.О пользователя в следующую страницу, используя URL. Последующая страница могла бы затем анализировать Ф.И.О пользователя из URL.
Пусть первая страница loadFormFIO.html - на ней мы запрашиваем Ф.И.О.
Вторая страница greetingFIO.html - на ней мы приветствуем пользователя используя его Ф.И.О.
Первая страница будет содержать следующее:
<html;> <head;> <script; language="JavaScript"> <!-- function newPage() { value1=""+document.form1.userF.value; value2=""+document.form1.userI.value; value3=""+document.form1.userO.value; self.location="greetingFIO.html?="+value1+"="+value2+"="+value3; } //--> </script> </head> <body;> <form; name="form1"> Фамилия&nbsp;<input; type="text" name="userF">
Имя&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input; type="text" name="userI"><br;> Отчество&nbsp;<input; type="text" name="userO"><br;> <input; type="button" name="button" value="Подтвердить данные" onClick="newPage()"> </form> </body> </html>
функция newPage() формирует URL для второй страницы используя значения полей формы form1 и производит переход на вторую страницу с скомпонованным URL.
&nbsp;- это пробелы для выравнивания текстовых полей.
Самое интересное происходит на второй странице:
<html;> <body;> <script; language="JavaScript"> <!-- userName = ""+ document.location; n1 = userName.indexOf("=")+1; userName= userName.substring(n1); n1= userName.indexOf("=")+1; userF=userName.substr(0,n1-1); userName= userName.substring(n1); n1= userName.indexOf("=")+1; userI=userName.substr(0,n1-1); userO= userName.substring(n1); document.write("<p;>Здравствуйте " + userI +" "+ userO +" "+ userF+"!") //--> </script> //Дальше делаете что хотите... </body> </html>
Получаем в переменную userName URL страницы (он сейчас маленько изменён) ищем в нём первый знак равенства(=) и всё до него удаляем, да и его тоже удаляем. Далее ищим следующее (=) запоминаем его положение и получаем подстроку "Фамилии" userF и опять всё удоляем до знака равенства. и повторяем так до конца пока у нас некончатся знаки равенства (у нас их всего три). и таким образом мы получаем искомые нами Ф.И.О. в переменных userF, userI, userO.
Выводим Здравствуйте Имя Отчество Фамилия!.
Для наглядности вот пример: