Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   загрузка файла по принципу ajax (https://javascript.ru/forum/misc/3650-zagruzka-fajjla-po-principu-ajax.html)

neadekvat 12.05.2009 18:13

загрузка файла по принципу ajax
 
Добрый день
Итак, делаю я (в инете нарыл) загрузку файлов на сервер по принципу "ajax" (чтоб незаметно было, через фрейм), вот код страницы, откуда файл загружается:
Код:

<form action="upload.php" name="uploadForm" method="post" target="hiddenframe" enctype="multipart/form-data"
onsubmit="document.getElementById('res').innerHTML=''; document.getElementById('loading').style.display='block';
return true;">
<input type="file" name="filename" />
<input type="submit" value="Загрузить"  />
</form>

<div id="loading" style="display:none; position: absolute; z-index: 99; left: 45%; top: 45%;">
<img src="img/loading.gif" border="0" /> Идет загрузка...
</div>
<iframe id="hiddenframe" name="hiddenframe" style="width:0; height:0; border:0"></iframe>

Вот код страницы upload.php
Код:

if (empty($error)) { ?>
  window.parent.document.getElementById("res").innerHTML="<input type='text' value='<?=$new_file_name?>' name='photo' disabled size='15' />";
<? } else { ?>
  window.parent.document.getElementById("res").innerHTML="Ошибка при загрузке файла";
<? }

(Представлены важные части кода. Остальное, по-моему, не имеет значения)
В первую же страницу возвращается ответ сюда:
Код:

<div id="res" style="margin: 1em 0"></div>
Все работает, ответ возвращается, но на самой странице (первой) он не присутствует
Скажите, пожалуйста, как можно доработать код, чтобы на первой странице в результате я получил это:
Код:

<div id="res" style="margin: 1em 0"><input type='text' value='%file_name%' name='photo' disabled size='15' /></div>
Или, может быть, можно сразу заготовить на первой странице
Код:

<input type='text' value='%file_name%' name='photo' disabled size='15' />
чтобы скрипт возвращал только имя файла

x-yuri 12.05.2009 21:31

какое забавное представление об ajax
http://xmlhttprequest.ru/

neadekvat 12.05.2009 22:23

"По принципу ajax" - имелось в виду фоновое выполнение операции
"Чистым" ajax`ом загрузить файлы на сервер нельзя
Кстати, (вдруг кому надо будет), решил свою проблему:
Убрать disabled
А для моего второго вопроса, ответ такой:
Заменить
Цитата:

window.parent.document.getElementById("res").inner HTML="<input type='text' value='<?=$new_file_name?>' name='photo' disabled size='15' />";
На
Цитата:

<input type='text' value='<?=$new_file_name?>' name='photo' size='15' id='photo2' />
(это я поставил перед объявлением джаваскрипта)
а саму строку заменил на это
Цитата:

window.top.document.getElementById('photo').value = document.getElementById('photo2').value;
Кстати, решение где-то здесь, даже страницы перелистывать не надо


Часовой пояс GMT +3, время: 15:29.