Нажимаем на кнопку вставить изображение, открывается дочернее окно (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.
Делаешь так
на нажатие кнопки:
А от туда, кода загрузил картинку и выбрал параметры в ОТКРЫВШЕМСЯ ОКНЕ:
Сдесь нужен 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;
Дочернее окно закрывается, а текстовое поле не меняется. Может быть видите, что я не так делаю?
код <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.
///
Это не функция, на сколько я понял. Если я прав, то окно закроется, как только откроется...
3.
//
Эт у вас тож не функция, а значит выполняется во время первого чтения браузером, а тогда фаши параметры равны null.
4.
Folder и PicName это должны быть переменные JS. То бишь если у вас это переменные в php? то в js это совсем другие переменные. Так же как яблоко и злазное яблоко...
Код скиньте
А так я не пойму
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 написал(а):
Спустя 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');
сработало
var doc = opener.document.getElementById('area_id');