Strict Standards: Resource ID#34 used as offset, casting to integer (34) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: GET из PHP в JS
ТвойWeb » WebMaster класс » JavaScript » GET из PHP в JS

Страниц (2): [1] 2 »
 

1. UFO - 20 Августа, 2009 - 10:27:17 - перейти к сообщению
Появилась задачка. Нужно из формы, формируемой на одной странице, передать в строке браузера 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?
2. Davinchi - 21 Августа, 2009 - 05:25:52 - перейти к сообщению
CODE:
windop = window.open("whois.php?domain=<? echo $domain; ?>","mywin","height=320,width=215");

предположение, потому что переменная domain появляется в скрипте
CODE:
<form action="bla.php" method="post">

мне кажется ее надо брать не как php, а как JS переменную из формы
3. Furax - 21 Августа, 2009 - 09:51:24 - перейти к сообщению
Именно:
CODE:
"whois.php?domain="+escape(window.forms[0].domain.value)
4. UFO - 22 Августа, 2009 - 14:43:52 - перейти к сообщению
Что-то теперь окно не открывается. Код такой:

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="+escape(window.forms[0].domain.value),"mywin","height=320,width=215");
}
//--><!]]>
</SCRIPT>

<a NAME="1"></a>

<INPUT CLASS="for" TYPE=button VALUE="Ok" onClick="winop();" style="width:110px; height:20px; background-color:##E5EAA7; border: #663300 1px solid; font:bold; color:#992212">
</form>
5. Furax - 22 Августа, 2009 - 23:24:28 - перейти к сообщению
Какие ошибки? Возможно, та форма не первая в документе? Тогда присвой ей name="myform" и пиши window.myform.domain.value.
6. UFO - 23 Августа, 2009 - 07:32:22 - перейти к сообщению
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">

Как можно сделать так, чтобы когда курсор ставится в форму надпись автоматически сразу стиралась?
7. UFO - 23 Августа, 2009 - 13:10:24 - перейти к сообщению
Второй вопрос решил сам, надо просто добавить в код:
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">


А вот насчет первого не знаю Однако
8. UFO - 23 Августа, 2009 - 18:00:16 - перейти к сообщению
Еще возникла проблема - сказали, что в Mozilla не работает function winop(), а у меня в Opera всё работает. Как быть? Не может эта функция там не работать, она же работает, только что-то в моём скрипте такое особенное препятствует Огорчение
9. Furax - 24 Августа, 2009 - 00:38:59 - перейти к сообщению
Чтобы происходила обработка Enterа, нужно кнопочку сделать не buttonом, а submitом, и вместо её onclick обрабатывать onsubmit формы; только не забудь в конце возвращать false, чтобы отправка формы не происходила.

А Mozilla какие ошибки выдаёт?
10. UFO - 24 Августа, 2009 - 05:35:58 - перейти к сообщению
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'у - нет, просто обновляется страница, а окошко не открывается.

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0264]     [ Gzipped ]