Страниц (2): [1] 2 » |
|
Описание: Как открыть окно через JS, передав переменную из PHP? |
Поиск в теме | Версия для печати |
UFO |
Отправлено: 20 Августа, 2009 - 10:27:17
|
Full Member
Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005
Карма 0
|
Появилась задачка. Нужно из формы, формируемой на одной странице, передать в строке браузера PHP-скрипту переменную, с которой работает скрипт. Причем, этот скрипт открываться должен в небольшом окошке, что реализовано при помощи JS и работает, но вот из-за того, что используется JS, я не знаю как передать ему значение переменной из формы
Сейчас использую такой код:
CODE:<?
$domain=$_POST['domain'];
?>
<form action="bla.php" method="post">
<input type=text value="" name="domain">
<SCRIPT LANGUAGE="JavaScript">
<!--
function winop()
{
windop = window.open("whois.php?domain=<? echo $domain; ?>","mywin","height=320,width=215");
}
//--><!]]>
</SCRIPT>
<a NAME="1"></a>
<INPUT CLASS="for" TYPE=button VALUE="Проверить" onClick="winop();" style="width:110px; height:20px; background-color:##E5EAA7; border: #663300 1px solid; font:bold; color:#992212">
</form>
но не работает.
Итак, вопрос: как передать другому скрипту переменную при том, что скрипт открывается через JS? |
|
|
Davinchi |
Отправлено: 21 Августа, 2009 - 05:25:52
|
Full Member
Покинул форум
Сообщений всего: 152
Дата рег-ции: Нояб. 2006
Карма -2
|
CODE:windop = window.open("whois.php?domain=<? echo $domain; ?>","mywin","height=320,width=215");
предположение, потому что переменная domain появляется в скрипте
CODE:<form action="bla.php" method="post">
мне кажется ее надо брать не как php, а как JS переменную из формы |
|
|
UFO |
Отправлено: 23 Августа, 2009 - 07:32:22
|
Full Member
Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005
Карма 0
|
Furax пишет:Какие ошибки? Возможно, та форма не первая в документе? Тогда присвой ей name="myform" и пиши window.myform.domain.value.
Когда тестировал - форма была одна, но в итоге вот это исправление помогло, спасибо, тем более что на готовой странице форма будет не одна. Но вот почему-то не открывается окошко по нажатию кнопки 'enter', когда курсор в поле
CODE:<input type=text value="" name="domain">
формы Это можно как-то исправить? (Но я стер параметр action, может быть из-за него это всё?)
И еще, я сделал:
CODE:<input type=text value="domain.zone" name="domain">
Как можно сделать так, чтобы когда курсор ставится в форму надпись автоматически сразу стиралась?(Отредактировано автором: 23 Августа, 2009 - 07:33:47) |
|
|
UFO |
Отправлено: 23 Августа, 2009 - 13:10:24
|
Full Member
Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005
Карма 0
|
Второй вопрос решил сам, надо просто добавить в код:
CODE:onclick="if (this.value == 'domain.zone') this.value = '';"
т.е.
CODE:<input type=text onclick="if (this.value == 'domain.zone') this.value = '';" value="domain.zone" name="domain">
А вот насчет первого не знаю (Отредактировано автором: 23 Августа, 2009 - 13:10:57) |
|
|
UFO |
Отправлено: 24 Августа, 2009 - 05:35:58
|
Full Member
Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005
Карма 0
|
Furax пишет:Чтобы происходила обработка Enterа, нужно кнопочку сделать не buttonом, а submitом,
Сделал, но если нажимать enter, то происходит обновление той страницы, на которой находишься. Я думаю это из-за отсутствия action формы, но его добавить не могу, т.к. страниц много (это форум), а писать что-то на PHP там нельзя - это шаблон.
Furax пишет:и вместо её onclick обрабатывать onsubmit формы;
Вот это не особо понял, если меняю на onsubmit, то по клику на кнопку уже не работает.
Furax пишет:только не забудь в конце возвращать false, чтобы отправка формы не происходила.
А вот тут вообще не знаю, как в JS это пишется. Так:
CODE:onSubmit="winop(); else false;"
?
В итоге сейчас использую такой код:
CODE:<SCRIPT LANGUAGE="JavaScript">
<!--
function winop()
{
windop = window.open("whois.php?domain="+escape(window.myform.domain.value),"mywin","height=320,width=400,left=400,top=100");
}
//--><!]]>
</SCRIPT>
<form method="post" name="myform">
<input value="domain.zone" onClick="if (this.value == 'domain.zone') this.value = '';" type=text name="domain">
<a NAME="1">
<INPUT CLASS="for" TYPE=submit VALUE="Whois" onClick="winop();" style="font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 8px;color: #FFFFFF;background-color: #A8B0BA;border: 1px solid #FFFFFF;"></a>
</form>
Furax пишет:А Mozilla какие ошибки выдаёт?
Да никаких... это же не компилятор просто по клику на кнопку не открывается новое окошко размером 320 на 400. Сейчас попросил открыть окошко enter'ом, говорят тоже не работает, т.е. сама функция JS почему-то не выполняется. Java включена. Может есть какой-то алтернативный вариант открывания окошек? Подойдет даже что-то другое, но похожее, но кроссбраузерное. Или может тут дело в названии формы, может привинтить там еще чего-нибудь?
Итак, два вопроса:
1. как избавится от обновления страницы после нажатия кнопки enter?
2. как заставить это всё работать в Mozilla?
upd
Сейчас проверил в IE - там по клику на кнопку работает, а по enter'у - нет, просто обновляется страница, а окошко не открывается.(Отредактировано автором: 17 Октября, 2009 - 10:26:15) |
|
|
|
Поиск в теме | Версия для печати |
Страниц (2): [1] 2 » |
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0) |
« JavaScript » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
|
|