[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача данных из из одного окна в другое и назад
webus
Столкнулся с такой задачей: нужно в основном окне в форме в текствое поле TEXTAREA вставить ссылку на добавленное изображение.
Нажимаем на кнопку вставить изображение, открывается дочернее окно (php скрипт с формой), где открывается нужный файл и заполняется поле - описание. Затем нажимаем загрузить - файл сохраняется, а в основном окне в текстовом поле в том месте где стоит курсор вставляется html-тег изображения: <img src="путь" alt="описание">

Не могу разобраться с тем, как из дочернего окна передать путь и описание в функцию javascript основного окна.
Может кто нибудь знает?



Спустя 3 часа, 48 минут, 14 секунд (17.07.2010 - 16:30) Basili4 написал(а):
этот вопрос и меня интересовал потом обошелся но 2 решения которые я смог придумать это через параметры и через куки

Спустя 20 часов, 20 минут, 32 секунды (18.07.2010 - 12:51) Mirexzpalich написал(а):
Тож недавно писал редактор. И помучался с этой проблемой...
Сдесь нужен JS.

Делаешь так
на нажатие кнопки:
	window.open('create_image.php', 'location=0,status=0,scrollbars=1,resizable=0,width=650,height=300,top=0').focus();


А от туда, кода загрузил картинку и выбрал параметры в ОТКРЫВШЕМСЯ ОКНЕ:


textarea = parent.document.getElementById(textarea_id);
textarea.value+='<img src="" и так далее...>';

Спустя 3 дня, 9 часов, 42 минуты, 56 секунд (21.07.2010 - 22:33) webus написал(а):
что то так не получается:
код <img src=........>не вставляется в textrarea, не пойму где ошибка:

Первый файл:
<script>
function savesel(doc)
{
if(document.selection) {
doc.sel = document.selection.createRange().duplicate();
}
}
function insert_img()
{
window.open('choose_pic.php', '', 'location=0,status=0,scrollbars=1,resizable=0,top=0, width=520,height=200').focus();;
}
</script>

<img src="pics/editor/img.gif" OnClick="insert_img();" alt="Изображение" title="Вставить изображение"><br>
<textarea name="Text" id="area_id" cols="25" rows="20" onselect='savesel(this)' onchange='savesel(this)' onclick='savesel(this)' onfocus='savesel(this)' onkeyup='savesel(this)'style="width:80%" class="form" ></textarea>


Второй файл:

switch($act):
default:
?>
ЗДЕСЬ ФОРМА ПО ДОБАВЛЕНИЮ ФАЙЛА
<form method="post" enctype="multipart/form-data" name="addpic" action="<? echo $PHP_SELF;?>?act=adding">
<table width="500" cellpadding="5" cellspacing="5" border="0">
<tr><td width="200"><p>Файл</td><td><p><input type=file name="Filename" style=width:300px></td></tr>
<tr><td width="200"><p>Описание:</td><td><p><input type=text name="Alt" style="width:300px" class="form" style="vertical-align: middle"></td></tr>
<tr valign="top"><td colspan=2 align=><p>
<input type=submit value="Загрузить" style="vertical-align: middle"></td></tr>
</table>
</form>
<?
break;

case("adding"):

ТУТ ОБРАБОТЧИК ФОРМЫ
...
...
<script>
var doc = parent.document.getElementById('area_id');
doc.value+='<p><img src="'+Folder+'/'+PicName+'.jpg">';
doc.focus();

</script>

<?}
?><script>window.close();</script><?
break;


endswitch;


Дочернее окно закрывается, а текстовое поле не меняется. Может быть видите, что я не так делаю?

Спустя 2 часа, 25 минут, 46 секунд (22.07.2010 - 00:59) Mirexzpalich написал(а):
Если хотиче, чтобы я вам сказал ТОЧНО, то скиньте всеть код 2-го файла.
А так я не пойму
1.
///ТУТ ОБРАБОТЧИК ФОРМЫ
...
...
<script>
var doc = parent.document.getElementById('area_id');///

перед <script> надо закрыть тег php

2.
///
<script>window.close();</script>
///
Это не функция, на сколько я понял. Если я прав, то окно закроется, как только откроется...

3.
//
<script>
var doc = parent.document.getElementById('area_id');
doc.value+='<p><img src="'+Folder+'/'+PicName+'.jpg">';
doc.focus();
</
script>
//
Эт у вас тож не функция, а значит выполняется во время первого чтения браузером, а тогда фаши параметры равны null.

4.
Folder и PicName это должны быть переменные JS. То бишь если у вас это переменные в php? то в js это совсем другие переменные. Так же как яблоко и злазное яблоко...


Код скиньте





Спустя 21 час, 25 минут, 44 секунды (22.07.2010 - 22:25) webus написал(а):
Mirexzpalich, посмотрите пожалуйста мои скрипты.
Первый: addblog.php, он вызывает choose_pic.php.

Спустя 11 часов, 49 минут, 37 секунд (23.07.2010 - 10:15) webus написал(а):
Переменные Folder и PicName правильно реализованы. Я проверял их значение перед вставкой в скрипт. Все верно.

Насчет остальных ваших замечаний - думаю, посмотря скрипты вы увидите что все там правильно.

Спустя 3 минуты, 20 секунд (23.07.2010 - 10:18) webus написал(а):
Возможно проблема в том что, когда я открываю второй скрипт во втором окне - сначала срабатывает действие по умолчанию, а потом при нажатии кнопку добавить - происходит запись картинки на сервер и передача данных в форму родительского окна (которая не срабатывает). Может быть, так как это уже 2-й шаг в новом окне, теряется нить что есть parent.document?

Спустя 1 минута, 14 секунд (23.07.2010 - 10:19) linker написал(а):
Для окна, которое было открыто используется не parent, а opener

Спустя 53 минуты, 8 секунд (23.07.2010 - 11:12) webus написал(а):
linker, огромное спасибо!
сработало
var doc = opener.document.getElementById('area_id');

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.