Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/37: Рейтинг темы: голосов - 37, средняя оценка - 4.76
radaslav
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 149
1

В JS передать данный с textarea в textarea

20.04.2012, 09:25. Просмотров 6718. Ответов 19
Метки нет (Все метки)

Привет всем!
Народ такой вопрос, как передавать данные с поля textarea которая на одной странице, в поля textarea которая в другой странице.
Любыми способами: cookie, Ajax, JQuery
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2012, 09:25
Ответы с готовыми решениями:

При добавлении поля <textarea> во всех предыдущих <textarea> все стирается
&lt;body&gt; &lt;input type=&quot;button&quot; value=&quot;Add note&quot; onclick=&quot;add('notes',0)&quot;&gt; ...

Можно ли накрыть TEXTAREA другим объектом, который который содержит текст этого TEXTAREA ?
Mozhno li nakrit TEXTAREA drugim objektom kotori soderzhit text etovo TEXTAREA...

Как получить строку из TextArea, на которой в данный момент находится курсор?
Использую ext.net (1.x) + asp.net Как получить строку из TextArea на которой...

передать в textarea текст в зависимости от выбора radiobutton
Здравствуйте! С JavaScript не знаком, но мне надо выполнить такую задачу: ...

Ссылка в textarea
Объясните по-проще, каким способом можно загнать ссылку в поле тега ...

19
kalabuni
Нарушитель
3236 / 2561 / 614
Регистрация: 18.04.2012
Сообщений: 7,702
20.04.2012, 10:03 2
Самый простой способ - использовать свойство window.name.
Т.е. на первой странице присвоить окну в качестве его имени значение текстового поля, а на другой странице, загружаемой в это же окно браузера, значение имени окна прочитать и занести в поле. Ну и затем, для "красоты", имя окна обнулить.
Код
file_1_OUT.html --> window.name = OBJECT_TEXTAREA.value;

и

file_2_IN.html --> OBJECT_TEXTAREA.value = window.name; window.name = '';
0
radaslav
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 149
20.04.2012, 10:07  [ТС] 3
А если у меня страницы разного расширение одна php вторая вообще tlp. Вот допустим у меня скрипты такого формата forma.php u adc.tpl, как тут применить ваш пример и что под окном подразумевается?
0
kalabuni
Нарушитель
3236 / 2561 / 614
Регистрация: 18.04.2012
Сообщений: 7,702
20.04.2012, 10:12 4
Как-то вы всё чересчур "буквально" воспринимаете

Ладно, перепишу с учётом этой вашей особенности:
Код
ПЕРВАЯ СТРАНИЦА (файл с ЛЮБЫМ расширением) --> window.name = OBJECT_TEXTAREA.value;
 
и
 
ВТОРАЯ СТРАНИЦА (файл с ЛЮБЫМ расширением) --> OBJECT_TEXTAREA.value = window.name; window.name = '';
-----
Под "окном" понимается "вкладка браузера" - это то место, где вы просматриваете страницы.
Этот вариант работоспособен только для случая, когда "вторая страница (с любым расширением, в том числе и отличающимся от расширения первой страницы) откроется в той же вкладке, где была до этого открыта первая страница".
Если вторая страница откроется в другом окне (в другой вкладке), то, увы, этот вариант "не прокатит".
0
radaslav
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 149
20.04.2012, 10:39  [ТС] 5
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
    <head>
        <title>Тест</title>
        </head>
        <form action="forma2.php">
<div>
    <textarea name="rus_text" id="t_text" class="input_wide"></textarea>
</div>  
<input type="submit" name="sub_publish" value="опубликовать">
</form>
<script type="text/javascript">
http://localhost/forma4/index.html--> window.name = OBJECT_TEXTAREA.value;
</script>
    </body>
</html>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
    <head>
        <title>2</title>
        </head>
 
<div>
    <textarea name="kaz_text" id="t_text" class="input_wide"></textarea>
</div>  
<script type="text/javascript">
http://localhost/forma4/forma2.php --> OBJECT_TEXTAREA.value = window.name; window.name = '';
</script>
    </body>
</html>
вот так чтоли? не передает ничего(

Добавлено через 14 минут
что у меня не правильно тут?
0
kalabuni
Нарушитель
3236 / 2561 / 614
Регистрация: 18.04.2012
Сообщений: 7,702
20.04.2012, 10:44 6
Вы стебётесь, или на самом деле такой?

СТРАНИЦА ПЕРВАЯ:
Клиент что-то пишет в <TEXTAREA>, отменяет, дописывает...
В какой-то момент времени ЗАКОНЧИЛ он писать.
Как вы этот момент времени определяете - когда клиент ВСЁ уже написал и более ничего исправлять не будет?
Видимо, клиент ваш что-то должен сделать "особливое" - на какую-нить кнопку нажать, или по ссылке перейти... так ведь?
Вот на это самое событие (нажатие на кнопку, переход по ссылке, и т.д.) и надо "навесить" скрипт, который запомнит окончательное значение <TEXTAREA> в имени окна.
Например, так (при нажатии на кнопку сабмита):
HTML5
1
2
3
<textarea name="rus_text" id="t_text" class="input_wide"></textarea>
</div>  
<input type="submit" name="sub_publish" value="опубликовать" onclick="window.name = document.getElementById ('t_text').value">
СТРАНИЦА ВТОРАЯ
Сразу после того, как в HTML-коде будет прописан тег <TEXTAREA>, можно вставить скриптовой блок, который и прочитает имя окна, и занесёт его значение в <TEXTAREA>. Вот так:
HTML5
1
2
3
4
5
<div>
    <textarea name="kaz_text" id="t_text" class="input_wide"></textarea>
<script>
document.getElementById ('t_text').value = window.name; window.name = '';
</script>
Вам на будущее: набор символов --> - это не JS-код, это просто означает "содержится", "должно быть"...
1
radaslav
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 149
20.04.2012, 10:57  [ТС] 7
спасибо все ясно! че то я совсем креветко =)
0
radaslav
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 149
20.04.2012, 11:05  [ТС] 8
еще такой вопрос если у меня на 2-й странице несколько textarea например
HTML5
1
2
3
4
5
6
7
8
9
<div>
    <textarea name="kaz_text" id="t_text" class="input_wide"></textarea>
    </div>
    <div>
    <textarea name="az_text" id="a_text" class="input_wide"></textarea>
    </div>
    <div>
    <textarea name="maz_text" id="m_text" class="input_wide"></textarea>
    </div>
и я хочу чтобы текст выводится на втором textarea, такое возможно?
0
kalabuni
Нарушитель
3236 / 2561 / 614
Регистрация: 18.04.2012
Сообщений: 7,702
20.04.2012, 11:12 9
После того, как в HTML-коде будет прописан нужный вам тег <TEXTAREA>, можно вставить скриптовой блок, который и прочитает имя окна, и занесёт его значение в нужный вам <TEXTAREA>. Просто укажите тот id, который вам нужен. Вот так:
Код
<div>
    <textarea name="kaz_text" id="t_text" class="input_wide"></textarea>
    </div>
    <div>
    <textarea name="az_text" id="a_text" class="input_wide"></textarea>
    </div>
    <div>
    <textarea name="maz_text" id="m_text" class="input_wide"></textarea>
    </div>
<script>
document.getElementById ('a_text').value = window.name; window.name = '';
//                        ^
//                        |
//                        тот id, который нужен     
</script>
1
radaslav
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 149
20.04.2012, 12:06  [ТС] 10
А можно ли передавать данные с нескольких textarea одним кликом?
0
kalabuni
Нарушитель
3236 / 2561 / 614
Регистрация: 18.04.2012
Сообщений: 7,702
20.04.2012, 20:10 11
Конечно, можно.
Точно таким же способом.

Надо значения нескольких <TEXTAREA> объединить в одну строку, между ними вставив какой-нить разделитель и полученную строку присвоить имени окна (ограничений на количество символов у значения свойства window.name нет).
А на второй странице надо прочитать значение имени окна, "разбить" его по этому же разделителю на подстроки и затем каждую из них поместить в соответствующий <TEXTAREA>.

Единственная проблема - или же надо придумать уникальный разделитель, чтобы он гарантированно не встречался ни в одном <TEXTAREA>, или же кодировать содержимое каждого <TEXTAREA> (например, переводя содержимое в Unicode, а разделителем тогда можно сделать амперсанд, как в строке GET-запроса).

Пример с первым вариантом: пусть разделителем будет несуществующее "слово" Ъы#Ьй3*1|-_4Sw. Тогда, для трёх <TEXTAREA> код будут следующим:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
//на ПЕРВОЙ странице - в том же месте, где и код для одного <TEXTAREA>:
onclick= "var R = 'Ъы#Ьй3*1|-_4Sw';
with (document) window.name = getElementById ('t_text').value + R + getElementById ('a_text').value + R + getElementById ('m_text').value"
 
//на ВТОРОЙ странице - в скриптовом блоке после ВСЕХ заполняемых <TEXTAREA>:
var s = window.name.split ('Ъы#Ьй3*1|-_4Sw');
with (document) {
                getElementById ('t_text').value = s [0];
                getElementById ('a_text').value = s [1];
                getElementById ('m_text').value = s [2]; 
                }
window.name = '';
1
radaslav
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 149
23.04.2012, 22:10  [ТС] 12
kalbuni спасибо Вам огромное за помощь. но у меня все вопросы возникаю. Можно ли с переменной значение передавать или текст какой нибудь статический. А вообще можете хорошую литературу указать, где воды по меньше?
0
kalabuni
Нарушитель
3236 / 2561 / 614
Регистрация: 18.04.2012
Сообщений: 7,702
24.04.2012, 07:49 13
Свойство window.name может принимать любое значение типа String, т.е. любой набор символов.

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

Так что, ВСЁ, что захотите, можете объединить в одну строку, добавив известные вам разделители.
ВСЁ здесь - это всё, что можно представить в виде символов.
Вот картинку какую-то в виде символов представить нельзя. Зато её сетевой адрес (URL) - можно.
(В скобках замечу, что некоторые браузеры умеют отображать картинки конвертированные в текст через base64, см., например, http://anosov.org.ru/services-base64image/. Но это опять же - строка символов. И только её можно передать)

Объединение подстрок в одну строку называется конкатенацией и в Javascript'e осуществляется обычным оператором +.

Таким образом, если вы имеете:
var Ps_1 = 'какой-то статический текст';
var Ps_2 = 'значение какой-то переменной';
var Ps_3 = 'value TEXTAREA номер 1';
var Ps_4 = 'value TEXTAREA номер 2';


то вы элементарно можете всё это объединить в ОДНУ строку, только вам надо будет придумать уникальный разделитель (как в примере выше), например, var RAZD = 'КТУЛХУ_Первый';

А потом спокойно конкатенируете все эти подстроки, соединяя их через разделитель:
window.name = Ps_1 + RAZD + Ps_2 + RAZD + Ps_3 + RAZD + Ps_4;

Перейдя на другую свою же страницу, разделяете window.name на подстроки методом split () в массив:
var POLUCHENO = window.name.split ('КТУЛХУ_Первый');

Берёте из этого массива элементы
POLUCHENO [0] - и это будет Ps_1, т.е. 'какой-то статический текст'
POLUCHENO [1] - и это будет Ps_2, т.е. 'значение какой-то переменной'
POLUCHENO [2] - и это будет Ps_3, т.е. 'value TEXTAREA номер 1'
POLUCHENO [3] - и это будет Ps_4, т.е. 'value TEXTAREA номер 2'


"Что есть что" в полученной строке и в каком порядке - это должны знать вы САМИ.
Ведь вы же лично САМИ все эти действия по соединению в одну строку производили на предыдущей странице, а не дядя Пушкина

Добавлено через 54 минуты
-----
1
vikohn
3 / 3 / 0
Регистрация: 17.04.2012
Сообщений: 18
25.04.2012, 20:20 14
window.name -- это конечно интересно, но можно ведь и куки использовать, почему нет. Как это делается писать не буду, сам ни разу не делал, но об этом написано в многих местах. Куки вообще может все что угодно запомнить и надолго. Надо только понять как они идентифицируются.
0
kalabuni
Нарушитель
3236 / 2561 / 614
Регистрация: 18.04.2012
Сообщений: 7,702
25.04.2012, 21:10 15
Можно и через куки.
А в браузере MSIE можно вообще запомнить в буфере памяти (клипбоарде) компьютера и оттуда "взять" в новом окне...

Только вот у кук, во-первых, есть ограничения по количеству и объёму. Во-вторых, пользователь может и не разрешить писать куки (возражения, что пользователь может вообще отменить Javascript, отметаю сразу - ибо тогда куки ведь тоже не без Javascript'a не поставишь)...

Действуя по принципу бритвы дедушки Оккама, использование window.name - самый оптимальный способ на Javascript'e, ибо он не плодит дополнительных сущностей (в виде текстовых файлов в папке Cookies на компьютере пользователя).

-----
Но, разумеется, самым надёжным будет серверное сохранение - в специальном ASCII-файле, который будет создан именно для этого клиента и будет действовать в пределах сессии :-))
0
Alexx23Frady
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 3
19.05.2012, 19:52 16
Здравствуйте.
Прошу помощи.
У меня 2 строки textarea на одной странице.но с разными id например:
HTML5
1
2
3
<textarea name="xxx" id="xxx" class="f_textarea"></textarea>
 
<textarea name="www" id="www" class="f_textarea"></textarea>
мне нужно что бы заполнив одно поле textarea id=xxx при нажатии на кнопку сабмита текст публиковался во втором textarea id=www И все это на одной странице.Возможно ли так сделать?
0
Notortep
Заблокирован
20.05.2012, 03:36 17
если оба <textarea> вместе с кнопкой сабмита находятся внутри тегов <form>...</form>,
то при нажатии на кнопку сабмита по умолчанию
оба <textarea> у вас исчезнут (вместе со всей страницей), а на месте текущей страницы
появится другая - адрес которой указан в атрибуте action тега <form>.

поэтому кнопку лучше делать type="button" и в ней прописать
onclick="this.form.www.value = this.form.xxx.value"
0
Alexx23Frady
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 3
20.05.2012, 10:24 18
Цитата Сообщение от Notortep Посмотреть сообщение
если оба <textarea> вместе с кнопкой сабмита находятся внутри тегов <form>...</form>,
то при нажатии на кнопку сабмита по умолчанию
оба <textarea> у вас исчезнут (вместе со всей страницей), а на месте текущей страницы
появится другая - адрес которой указан в атрибуте action тега <form>.

поэтому кнопку лучше делать type="button" и в ней прописать
onclick="this.form.www.value = this.form.xxx.value"
оба <textarea> вместе с кнопкой сабмита не находятся внутри тегов <form>...</form>,поэтому нужно что-то другое.
0
Notortep
Заблокирован
20.05.2012, 10:27 19
Цитата Сообщение от Alexx23Frady Посмотреть сообщение
оба <textarea> вместе с кнопкой сабмита не находятся внутри тегов <form>...</form>,поэтому нужно что-то другое.
вам страшно не повезло - код скрипта у вас будет аж на пару десятков символов длиннее:
onclick="document.getElementById ('www').value = document.getElementById ('xxx').value"
1
Alexx23Frady
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 3
20.05.2012, 10:34 20
Извеняюсь-все заработало,спасибо огромное.
0
20.05.2012, 10:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2012, 10:34

Textarea со скроллом
Здравствуйте. Подскажите, как можно сделать такую textarea со скроллом, чтобы...

Textarea и Button в JS
Нужно вести в textarea имя цвета и при нажатии button изменить цвет текста в...

гадость с textarea
вот у меня есть функцияdocument.getElementById('msg').onkeydown=enter; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru