Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как ответ сервера вывести в iframe (https://javascript.ru/forum/jquery/53560-kak-otvet-servera-vyvesti-v-iframe.html)

zawm 09.02.2015 04:23

Как ответ сервера вывести в iframe
 
Здравствуйте. Имеется фрейм:

<IFRAME name="frame" src="" frameBorder="1" width="100%" height="600"></IFRAME>

POST запросом отсылается на РНР скрипт данные. Ответом скрипта служит URL страницы типа "http://www.domen.ru"

$.ajax({
type: "POST", url:'script.php',data:'arrObjects='+arrObjects
response:'text',
success:function(data){
Что здесь нужно???
}
});

Как прописать ответ в этот код, чтоб в IFRAME name="frame" открылся этот URL?

Заранее спасибо.

ksa 09.02.2015 08:31

Цитата:

Сообщение от zawm
Как прописать ответ в этот код, чтоб в IFRAME name="frame" открылся этот URL?

Как вариант...

<!DOCTYPE html>
<html ng-app>
<head>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="http://code.angularjs.org/1.1.4/angular.min.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
window.onload=function(){
	var data='http://javascript.ru/forum/jquery/53560-kak-otvet-servera-vyvesti-v-iframe.html';
	document.getElementsByName('frame')[0].src=data;
};
</script>
</head>
<body> 
<IFRAME name="frame" src="" frameBorder="1" width="100%" height="600"></IFRAME>
</body>
</html>

Deff 09.02.2015 10:16

zawm,
Смысл тогда пересылать Аяксом ? Отдайте обычную форму, можно скрытую, с target=Имя Фрейма
Весь смысл Аякса в ускорении получения ответа без рендинга страниц, либо подгрузки на текущую страницу без всяких фреймов

zawm 09.02.2015 11:11

Спасибо ksa, но смысл как раз в том, что РНР скрипт отдает URL страницы которую открываем во фрейме. Это динамический адрес с установкой в запросе обработанных данных.

Так ответа и не получил получается. Это должно быть что-то типа

success:function(data){
document.getElementsByName('frame')[0].src= +data;
}

Где "data" - это URL который вернул script.php

ksa 09.02.2015 11:16

Цитата:

Сообщение от zawm
Это должно быть что-то типа

success:function(data){
   document.getElementsByName('frame')[0].src= +data;
}

А зачем "+" поставил перед data? :)

Цитата:

Сообщение от zawm
Так ответа и не получил получается.

Х/з какой тебе еще "ответ" показать...

zawm 09.02.2015 11:26

Т.е. должно быть так?

success:function(data){
document.getElementsByName('frame')[0].src= data;
alert(data);
}

Ничего не происходит. И alert не выдает ничего... Может просто неправильно отдает ответ script.php. Если запустить в браузере, то на пустой странице показывает URL. Т.е. скрипт работает и отдает адрес. Может надо указывать как-то по другому ответ скрипта script.php?

zawm 09.02.2015 11:36

Опа... не работает даже так:

success:function(data){alert('data');}

Нет алерта. В чем тогда проблема?

ksa 09.02.2015 11:42

Цитата:

Сообщение от zawm
Нет алерта. В чем тогда проблема?

Злой дух Махатухма гневается на тебя, требует жертву!

zawm 09.02.2015 12:22

Цитата:

Сообщение от ksa (Сообщение 355814)
Злой дух Махатухма гневается на тебя, требует жертву!

Да нет. Просто я тупишка от Данон:(

Нашел ошибку. Здесь пишу одно, в скрипте у себя с ошибками=)) Переписал заново - все работает. Где-то у себя ошибку делал:lol:

Всем спасибо.


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