Имеется следующий код, вкратце он обрамляет текст тегами:
<script type="text/javascript">
function HTML_edit( action )
{
area = document.getElementById('textfield'); // получаем объект поля ввода
area.focus(); // перед началом работы переводим фокус на текстарею (иначе в IE не будет работать)
// получаем выделенный текст и подготавливаем его к обработке
if( document.getSelection )
{
document.getSelection();
avalue = area.value;
sel_length = avalue.length;
sel_start = area.selectionStart;
sel_end = area.selectionEnd;
left_side_text = avalue.substring(0, sel_start);
selected_text = avalue.substring(sel_start, sel_end);
selected_text1 = avalue.substring(0, sel_start);
right_side_text = avalue.substring(sel_end, sel_length);
}
// для остальных браузеров (IE), не понимающих работу с «выделениями», приведенную выше
else if( document.selection ) selected_text = document.selection.createRange().text;
// обрабатываем выделенный текст на основе переданного аргумента action
switch( action )
{
case 'tegImage':
//if( !selected_text1 ) selected_text1 = prompt('Введите адрес картинки', ''); //Это условие проверяет введено ли в форму тег, если нет, он просто останавливается
if( !selected_text )
{
var url = prompt('Введите адрес картинки', '') || '';
if (!url) {exit;}
var altText = prompt('Введите alt картинки', '') || '';
if (!altText){altValue=altText;}else{altValue="alt=\""+altText+"\"";}
//title = prompt('Введите title картинки', '') || '';
var align = prompt('Выравнять по ', '') || '';//Тут нужно сделать выпадающий список
//который покажет как ровнять картинку
prefix = '<img src="/foto/'+ url +'" '+ altValue +' align="'+ align +'">';
suffix = '\n';
}
break;
case 'tegImage1':
if( !selected_text )
{
openWindow = open("","","width=600,height=400");
openWindow.document.write(
'<form method=\"post\" enctype=\"multipart/form-data\">',
'<p><input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"300000\"/></p>',
'<p>Загрузить фото: <input type=\"file\" size=\"40\" name=\"uploadFile\"></p>',
'<p>Альтернативный текст (Alt): <input type=\"text\" size=\"40\" ></p>',
'<p>Высота: <input type=\"text\" size=\"7\"></p>',
'<p>Ширина: <input type=\"text\" size=\"7\"></p>',
'<p><input type=\"radio\" name=\"browser\" value=\"ie\">Left</p>',
'<p><input type=\"radio\" name=\"browser\" value=\"ie\">Right</p>',
'<p><input type=\"radio\" name=\"browser\" value=\"ie\">Center</p>',
'<input type=\"submit\" name=\"goup\" value=\"Готово\">',
'</form>'
);
prefix = '<img src="/img/'+ url +'" '+ altValue +' align="'+ align +'">';
suffix = '\n';
}
break;
}
// возвращаем результаты работы функции обратно в поле ввода текста
if( prefix != null && suffix != null )
{
if( document.getSelection ) area.value = left_side_text + prefix + selected_text + suffix + right_side_text;
else if( document.selection ) document.selection.createRange().text = prefix + selected_text + suffix;
}
}
</script>
<input type="button" value="IMG" onclick="HTML_edit('tegImage')" />
<input type="button" value="IMG1" onclick="HTML_edit('tegImage1')" />
<br />
<textarea cols="115" rows="15" wrap="off" id="textfield"></textarea>
[PHP]
<?
print_r($_FILES);
if(isset($_POST['goup'])){
$folder = 'img/';
$uploadedFile = $folder.basename($_FILES['uploadFile']['name']);
if(is_uploaded_file($_FILES['uploadFile']['tmp_name'])){
if(move_uploaded_file($_FILES['uploadFile']['tmp_name'],$uploadedFile))
{
echo "Файл загружен";
}
else
{
echo "Во время загрузки файла произошла ошибка";
}
}
else
{
echo 'Файл не загружен';
}
}
?>[/PHP]
Интересует вопрос сравнительно вот этого момента case 'tegImage1':
При нажатии на эту кнопку <input type="button" value="IMG1" onclick="HTML_edit('tegImage1')" /> вылазит окно в котором имеется поля для заполнения и осуществляется загрузка файлов.
Загрузка проходит отлично.
Не могу понять как получить значения из формы в эту строку prefix = '<img src="/img/'+ url +'" '+ altValue +' align="'+ align +'">';
---------- Сообщение добавлено в 02:24 ---------- Предыдущее сообщение размещено в 01:58 ----------
Реализовал данную форму с помощью асинхроноого запроса, теперь не открывается новое окно.
Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
|