Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Открыть новое окно после заполнения формы (https://javascript.ru/forum/server/35731-otkryt-novoe-okno-posle-zapolneniya-formy.html)

Mateus 20.02.2013 13:22

Открыть новое окно после заполнения формы
 
Доброго времени суток.
После обработки формы, должно открыться окно с введенным адресом. Т.е. пользователь ввел все данные и в случае если все введено правильно, открывается окно и перенаправляет по другому адресу.
Вот мой код, но он не открывает окно :

echo'<script type="text/javascript">
    var elm=parent.window.document.getElementById("photo");
elm.innerHTML="'.$url.'";

</script>';

$url = "window.open(' http://url.com','Toolbar=1,Location=0,Directories=0,Status=0,Menubar=0','false' );"

ksa 20.02.2013 13:33

Цитата:

Сообщение от Mateus
elm.innerHTML="некий_контент";

Как может это
Цитата:

Свойство innerHTML устанавливает или получает всю разметку и содержание внутри данного элемента.
http://innerhtml.ru/

"Открываеть окно и перенаправлять по другому адресу"?

Mateus 20.02.2013 13:37

Главная задача открыть новое окно с необходимым адресом, который находится вне моего сайта.
Вот идея была открыть новое окно при помощи window.open(), только функция не запускается.

Deff 20.02.2013 13:41

Ну если на текущей странице открывать окно - то без проблем, на новой вкладке-увы - зависит от настройки браузеров

Mateus 20.02.2013 13:47

Если написать
<script>
window.open(' http://url.com','Toolbar=1,Location=0,Directories=0,Status=0,Menubar=0','false' );
</script>


на странице, то открывается новое окно с правильной ссылкой. Но запустив php обработчик, этот код передается в div, но не открывается новое окно. Вот и проблема заключается в том, что функция не запускается

Mateus 20.02.2013 13:51

Мне так же подойдет вызов функции javascript, но только как её автоматически вызвать из php?

Deff 20.02.2013 14:07

<script>
var link ="http://javascript.ru/window-open" //Адрес отображения
popupWin = window.open(link,'contacts','location,width=490,height=368,top=0');
popupWin.focus();
</script>

Mateus 20.02.2013 14:40

Deff, спасибо, но проблема в запуске функции, а не написании её. У меня не получается запустить её. После работы php, эта функция выводится в окно пользователя, но не запускается. Вот и проблема в том, как запустить функцию?

ksa 20.02.2013 15:00

Цитата:

Сообщение от Mateus
У меня не получается запустить её. После работы php, эта функция выводится в окно пользователя, но не запускается.

Паганый твой ПХП. :D
Делай по аналогии. Вот так это будет работать у меня в CSP

<html>
<head>
<title>test</title>
</head>
<script language='cache' runat='server'>
s url="http://javascript.ru/window-open"
w "<script>",!
w "var link ='"_url_"' //Адрес отображения",!
w "popupWin = window.open(link,'contacts','location,width=490,height=368,top=0');",!
w "popupWin.focus();",!
</script>
</script>
<body>
</body>
</html>


В итоге сгенерится такой контент

<html>
<head>
<title>test</title>
</head>
<script>
var link ='http://javascript.ru/window-open' //Адрес отображения
popupWin = window.open(link,'contacts','location,width=490,height=368,top=0');
popupWin.focus();

</script>
<body>
</body>
</html>

Окно появляется без проблем...

Mateus 20.02.2013 15:07

Цитата:

Сообщение от ksa (Сообщение 235838)
Паганый твой ПХП. :D

:D
Видимо не до конца объяснил проблему. Мне нужно было в ссылку добавить переменные из формы. В итоге я решил сделать по-другому, в php
сгенерировать div на все окно и onmousemove он запустит функцию открывания окна + возьмет все необходимые данные из формы.

ksa 20.02.2013 15:38

Цитата:

Сообщение от Mateus
Мне нужно было в ссылку добавить переменные из формы.

Дык!

<html>
<head>
<title>test</title>
</head>
<script language='cache' runat='server'>
w "<script>",!
w "function go(){",!
w "var link =document.getElementById('url').value",!
w "popupWin = window.open(link,'contacts','location,width=490,height=368,top=0');",!
w "popupWin.focus();",!
w "};",!
w $c(60),"/script>",!
</script>
<body>
<form>
	<input type='text' id='url' value='http://javascript.ru/window-open' />
	<button onclick='go();'>Go</button>
</form>
</body>
</html>


В итоге...

<html>
<head>
<title>test</title>
</head>
<script>
function go(){
var link =document.getElementById('url').value
popupWin = window.open(link,'contacts','location,width=490,height=368,top=0');
popupWin.focus();
};
</script>

<body>
<form>


	<input type='text' id='url' value='http://javascript.ru/window-open'/>
	<button onclick='go();'>Go</button>
</form>
</body>
</html>

Mateus 20.02.2013 15:40

ksa, большое спасибо за помощь. Я сделал кое что похожее, только функция вызывается по mousemove + в место кнопки прозрачный div на все окно.

ksa 20.02.2013 15:44

Цитата:

Сообщение от Mateus
только функция вызывается по mousemove + в место кнопки

Это уже не важно...

Mateus 20.02.2013 15:52

До этого пытался запустить функцию сразу после заполнения, но она запускалась раньше, чем заполнялась форма, по-этому вызывалась без некоторых переменных. В итоге по mousemove для меня лучший вариант. Спасибо за помощь :)

Deff 20.02.2013 15:54

Цитата:

Сообщение от Mateus
В итоге по mousemove для меня лучший вариант.

лучший Вариант по кнопке далее по заполнению формы, посколь признаком заполнения и отправки должно быть какое -то событие пользователя

Mateus 20.02.2013 16:00

Заполняя форму, пользователь указывает атрибут - открывать новое окно или нет. Если указывает открывать, то после обработки формы откроется окно

Mateus 21.02.2013 12:09

Все таки поменять onmousemove на onclick, т.к. браузеры блокируют всплывающие окна.


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