Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: фрейм и паредача данных из форм
 
 автор: jekakam   (07.11.2007 в 13:25)   письмо автору
 
 

Подскажите как сделать!!
У меня есть страница с фреймом, в нем ссылки на другие страници(см. в коде). На страницах 1,2,3 есть форма textarea. Вопрос в следующем - как сделать, чтоб введенный текст на странице 1 и 2 отображался на странице 3?
Я так понимаю, что надо как-то сохранить данные из страниц 1 и 2 в приведенном ниже коде, а затем , при вызове страници 3 передать их в нее?
Если можно, с примером, пожалуйста.


<BODY>
<table width="100%" border="0" cellspacing="0" cellpadding="4">
    <tr align="center">
        <td><a href="1.htm" target="main">1</a></td>
        <td><A href="2.htm" target="main">2</A></td>
        <td><A href="3.htm" target="main">3</A></td>
    </tr>
</table>
<iframe src="1.htm" name="main" height="100%" width="100%"></iframe>

   
 
 автор: sim5   (07.11.2007 в 13:35)   письмо автору
 
   для: jekakam   (07.11.2007 в 13:25)
 

textarea - это не форма, а элемент формы. Вы отправляете эту форму кнопкой SUBMIT или вам содержимое textarea надо передать по ссылке?

   
 
 автор: jekakam   (07.11.2007 в 15:31)   письмо автору
 
   для: sim5   (07.11.2007 в 13:35)
 

>textarea - это не форма, а элемент формы. Вы отправляете эту форму кнопкой SUBMIT или вам содержимое textarea надо передать по ссылке?

да, не так выразился - на страницах 1-3 есть формы, содержащие textarea. мне надо, чтобы я заполнил textarea на странице 1, перешел на страницу 2, заполнил textarea, перешел на стр.3 и содержимое textarea со стр.1 и 2 отразилось в textarea на стр.3. или же, минуя стр2 перехожу со стр1 на стр3. для передачи используется кнопка SUBMIT

   
 
 автор: jekakam   (07.11.2007 в 15:32)   письмо автору
 
   для: sim5   (07.11.2007 в 13:35)
 

>textarea - это не форма, а элемент формы. Вы отправляете эту форму кнопкой SUBMIT или вам содержимое textarea надо передать по ссылке?

да, не так выразился - на страницах 1-3 есть формы, содержащие textarea. мне надо, чтобы я заполнил textarea на странице 1, перешел на страницу 2, заполнил textarea, перешел на стр.3 и содержимое textarea со стр.1 и 2 отразилось в textarea на стр.3. или же, минуя стр2 перехожу со стр1 на стр3. для передачи используется кнопка SUBMIT

   
 
 автор: sim5   (07.11.2007 в 15:41)   письмо автору
 
   для: jekakam   (07.11.2007 в 15:32)
 

А у вас сайт не на РНР?

   
 
 автор: jekakam   (07.11.2007 в 16:17)   письмо автору
 
   для: sim5   (07.11.2007 в 15:41)
 

нет, PHP запрещены, как и MySQL.
остается только надеятся на javascript и средства HTML

   
 
 автор: sim5   (07.11.2007 в 17:26)   письмо автору
 
   для: jekakam   (07.11.2007 в 16:17)
 

Ну тогда вам форма не нужна, по большому счету, но можно и оставить, но передавать данные только методом GET. Но есть проблема, при таком методе передачи, данные будут переданы в запросе, добавленными к url и огранечены по длине. Если вы намереваетесь писать прилично на первой странице, потом еще добавить на второй, то в зависимости от объема этих данных, они могут просто не все дойти до адресата.

   
 
 автор: jekakam   (07.11.2007 в 18:34)   письмо автору
 
   для: sim5   (07.11.2007 в 17:26)
 

передоваться со страници 1 и 2 будет только по одной строчке, длиной не более 45 знаков.
а можно конкретный пример реализации всего этого?

   
 
 автор: sim5   (07.11.2007 в 19:22)   письмо автору
 
   для: jekakam   (07.11.2007 в 18:34)
 

Ну тогда хватит. Форма по умолчанию передает данные методом GET. Например, ваш элемент textarea имеет имя msg, тогда при передаче формы в URL будет добавлено имя и значение textarea. Допустим вы передаете со страницы 1.htm на страницу 2.htm. В action должен указывать этот адрес, т.е.:
<form action="2.htm">
В итоге URL будет выглядеть так 2.htm?msg=textvalue
где textvalue значение введенное в textarea. Для принятия этого значения на странице 2.htm, нужно с помощью JS забрать это значение. Делается это следующим образом:

//получаем значение после ?
var var_url=location.search.substring(1);
//разделяем имя переменной и ее значение
var val =  var_url.split('=');
//берем значение переменной и декодируем, если была передача русских символов
val =  unescape(val[1]);

Далее не знаю, что вам требуется, вы можете это значение вставить в элемент textarea на этой (второй) странице, либо перед отправкой формы добавить к нему значение из textarea. Кстати, для передачи таких малых значений (45 символов) хватит и элемента INPUT.

   
 
 автор: jekakam   (07.11.2007 в 21:32)   письмо автору
 
   для: sim5   (07.11.2007 в 19:22)
 

Извиняюсь за тупизну мою, подскажи, как все-таки можно передать данные из страници 1 или 2 на страницу (код которой вверху), к примеру в hidden элемент, а потом, при переходе на стр.3 считать их и поместить в textarea?

таким образом можно поместить считанные данные или есть что-нибудь другое?

<script language="JavaScript">  
  function paste(txt)  
  { 
   opener.document.forms["form"].text.value = txt 
  }  
</script>

   
 
 автор: sim5   (08.11.2007 в 06:37)   письмо автору
369.5 Кб
 
   для: jekakam   (07.11.2007 в 21:32)
 

Файл 1.html

<html>
<head>
</head>
<body>
<form action="2.html">
<input type="hidden" name="hd" value="Text1">
<input type="submit" value="Send">
</form>
</body>
</html>

Файл 2.html

<html>
<head>
<script>
var var_url=location.search.substring(1); 
var val =  var_url.split('='); 
val =  val[1];
function add(f) {
f.hd.value = val+"+"+ f.hd.value;
return true; 
}
</script>
</head>
<body>
<form action="3.html" onsubmit="return add(this)">
<input type="hidden" name="hd" value="Text2">
<input type="submit" value="Send">
</form>
</body>
</html>

Файл 3.html

<html>
<head>
<script>
function getText() {
var var_url=location.search.substring(1); 
var val =  var_url.split('='); 
val =  unescape(val[1]);
document.getElementById("getHD").innerHTML = val; 
}
</script>
</head>
<body onload="getText()">
<div id="getHD"></div>
</body>
</html>

Запустите файл 1.html и отправьте форму.

Почитайте хотя бы прикрепленное. Совет - есть бесплатные хосты с поддрежкой РНР, а без MySQL и подавно есть, возьмите такой, и лучше, и возможностей больше.

   
 
 автор: jekakam   (08.11.2007 в 20:06)   письмо автору
 
   для: sim5   (08.11.2007 в 06:37)
 

Спасибо за совет и пример, кое в чем разобрался!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования