Передачапараметров через формы!!!!!!!!!!

Компьютеры, программы, периферия, коммуникации, интернет, программирование и т.п. Ранее назывался Hard-n-Soft.
Сообщение
Автор
xm*DrAgoN*

№ 0 Сообщение xm*DrAgoN* » 01 авг 2002 14:31

Короче говоря есть маленький вопросик!!!!!!!!!!!! А именно как передать значения из формы минуя: METHOD, а также кнопки SUBMIT.
Заранее спасибо!

BadBlock
Аватара пользователя
Благодарил (а): 1586 раз
Поблагодарили: 8125 раз

№ 1 Сообщение BadBlock » 01 авг 2002 14:54

Ну, method, предположим все-таки, наверное, нужен.

А насчет кнопки, сначала скажи, по какому событию ты хочешь сделать submit всей формы,
если не по кнопке "submit"?

<font size=-2>[ Это сообщение было отредактировано: BadBlock в 2002-08-01 15:56 ]</font>

xm*DrAgoN*

№ 2 Сообщение xm*DrAgoN* » 01 авг 2002 16:31

> Ну, method, предположим все-таки, наверное, нужен.
>
> А насчет кнопки, сначала скажи, по какому событию ты хочешь
> сделать submit всей формы,
> если не по кнопке "submit"?
>
> <font size=-2>[ Это сообщение было отредактировано: BadBlock
> в 2002-08-01 15:56 ]</font>
так блокыч допустим, что у нас есть код на php, а именно:
<?
echo ("<form name = "admin" METHOD = "POST" action = "admin.php">");
echo ("<input type = "text" size = 8 name = "number" value = "$number">");
echo ("<textarea name = "comm"> rows = 9"></TEXTAREA>);
echo ("<input type = "submit">");
echo ("</form>");
?>
Ну собственно после выполнения данного скрипта УРЛА примет такой вид:........./admin.php?text="текст который мы введи"&comm="текст который мы ввели"... Так вот мне надо что бы эти параметры передовались не на жатию на кнопку, а на ссылку... Потому как мне надо передовать параметры позиции в таблице записи.... Понял?!?!?!?!?

_________________
Иногда кажется, что начало - это и есть конец

<font size=-2>[ Это сообщение было отредактировано: BadBlock в 2002-08-01 17:39 ]</font>

BadBlock
Аватара пользователя
Благодарил (а): 1586 раз
Поблагодарили: 8125 раз

№ 3 Сообщение BadBlock » 01 авг 2002 17:07

> Ну собственно после выполнения данного скрипта УРЛА
> примет такой вид:........./admin.php?text="текст
> который мы введи"&comm="текст который мы ввели"...

Неправда. УРЛ примет такой вид, только если METHOD=GET, а метод POST передает значения невидимо, никак не через УРЛ. Так что в твоем случае УРЛ будет девственно чист от переменных.

Кстати, а зачем ты пишешь параметры для echo в скобках? :-)

> Так вот мне надо что бы эти параметры передовались
> не на жатию на кнопку, а на ссылку...

Ну напиши, например, <img src=xxx.gif onClick="admin.submit();" STYLE="cursor:hand"> , где admin – имя формы, тогда сможешь сабмиттить не по кнопке, а по нажатию на картинку, причем при наведении на картинку курсор примет вид руки, как при наведении на любую ссылку.

> Потому как мне надо передовать параметры позиции
> в таблице записи.... Понял?!?!?!?!?

Нет, нифига не понял. Какие еще позиции? В какой еще таблице записи??? Никак не пойму, чем же все-таки не устраивает кнопка SUBMIT? Какая хрен разница, чем сабмиттить, если результат один и тот же? Если твоя цель - чтобы переменные были невидимы в УРЛ, то делай METHOD=POST. Хотя совсем всё спрятать всё равно не получится – даже хидден инпуты все равно видно в html-сорце.

P.S. Когда постишь HTML-код в форум, ставь галочку "Запрещены HTML в этом сообщении", и тогда твой код будет выводиться в таком виде, в каком ты его написал.


<font size=-2>[ Это сообщение было отредактировано: BadBlock в 2002-08-01 18:13 ]</font>

xm*DrAgoN*

№ 4 Сообщение xm*DrAgoN* » 02 авг 2002 09:18

> > Ну собственно после выполнения данного скрипта УРЛА
> > примет такой вид:........./admin.php?text="текст
> > который мы введи"&comm="текст который
> мы ввели"...
>
> Неправда. УРЛ примет такой вид, только если METHOD=GET,
> а метод POST передает значения невидимо, никак не через
> УРЛ. Так что в твоем случае УРЛ будет девственно чист
> от переменных.
АААААААААА. Ну тогда у меня наверное глюки... ты хоть каким методом пость урла будет содержать информацию из полей!.
> Кстати, а зачем ты пишешь параметры для echo в скобках?
> :-)
>
> > Так вот мне надо что бы эти параметры передовались
> > не на жатию на кнопку, а на ссылку...
>
> Ну напиши, например, <img src=xxx.gif onClick="admin.
> submit();" STYLE="cursor:hand">
По моему ты говоришь про совсем другое! МНе надо взять инфу из формы.....
>
> > Потому как мне надо передовать параметры позиции
>
> > в таблице записи.... Понял?!?!?!?!?
>
> Нет, нифига не понял. Какие еще позиции? В какой еще таблице
> записи???
Блокыч... Ты работал с MySQL?!?!?!?!?! ИЛи у тебя ентот форум без MySQL????


_________________
Иногда кажется, что начало - это и есть конец

<font size=-2>[ Это сообщение было отредактировано: BadBlock в 2002-08-02 10:29 ]</font>

BadBlock
Аватара пользователя
Благодарил (а): 1586 раз
Поблагодарили: 8125 раз

№ 5 Сообщение BadBlock » 02 авг 2002 09:41

> АААААААААА. Ну тогда у меня наверное глюки...
> ты хоть каким методом пость урла будет содержать
> информацию из полей!.

Тебе еще раз повторить? УРЛ будет содержать информацию из полей только при использовании метода GET. У тебя совершенно точно глюки, либо ты занимаешься высасыванием из пальца непонятно чего, не попробовав для начала на практике. А ты попробуй хотя бы, прежде чем чушь-то городить.

> По моему ты говоришь про совсем другое!
> МНе надо взять инфу из формы.....

Ты совершенно надежно заберешь инфу из формы скриптом admin.php, используя указанный мной метод. Форма отдает свои значения по сабмиту. Как еще ты собрался забирать у нее значения кроме как по сабмиту? Ну так вот, каким способом ты вызовешь этот сабмит - через кнопку или же вызвав функцию "submit" вручную – пофигу.

> Блокыч... Ты работал с MySQL?!?!?!?!?!

Естественно, работал и работаю. Только вот MySQL не имеет никакого отношения к передаче значений из формы. И вообще, если ты заметил, у меня на сайте везде используются кнопки "submit", и никаких неудобств от этого факта я почему-то не испытываю.


<font size=-2>[ Это сообщение было отредактировано: BadBlock в 2002-08-02 10:44 ]</font>

xm*DrAgoN*

№ 6 Сообщение xm*DrAgoN* » 02 авг 2002 10:22

Мля, смотри полный код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>

<body>
<?
define("DBName","test");
define("HostName","localhost");
define("UserName","root");
define("Password","");
if(!mysql_connect(HostName,UserName,Password))
{ echo "Не могу соединиться с базой ".DBName."!<br>";
echo mysql_error();
exit;
}
mysql_select_db(DBName);
$r=mysql_query("select * from guestbook WHERE id = $number");
$f=mysql_fetch_row($r);
echo ("<table border = 1 width = 500><tr><td>Автор:$f[1]</td><td>Город:$f[2]</td><tr><td colspan = 2>$f[3]</td></tr><tr><td colspan = 2>$f[4]</td></tr></tr></table>");
echo ("<form name = "comments" action = "change.php"");
echo ("<br>Выберите действие:<br><select name = "action"><option></select>");
echo ("<br>Коментарий:<br><textarea name = "comm" rows = "9"></textarea><br>[<a href = "change.php?action=del&number=$number">Удалить запись</a>][<a href = "change.php?action=add&number=$number&comm=test">Добавить коментарий</a>]");
echo ("<input type = "submit">");
echo ("</form>");
if ($action=="del")
{
mysql_query("delete from guestbook where id = $number");
echo "<meta http-equiv="Refresh" content="3; URL=admin.php">";
}
if ($action=="add")
{
mysql_query("update guestbook set comm='$comm' where id=$number");
}
?>
</body>
</html>
так вот для тех кто в танке... Определяется по запросу строка записи... потом имеется форма для внесения изменений в таблицу!!!!!!!!!!!!!!!!!!!!!!!!
При обычных САБМИТАХ выдается ошибка, что не правильный запрос!
Потому как ты не указываешь номер или ID... ПОНЯЛ?

BadBlock
Аватара пользователя
Благодарил (а): 1586 раз
Поблагодарили: 8125 раз

№ 7 Сообщение BadBlock » 02 авг 2002 10:49

Конечно, потому что у тебя скрипт написан не прямыми руками, а твоими. :-) (шутю, шутю)

Ладно, по порядку.

Первое. У тебя изначально не задана переменная $number, тем не менее, она тут же используется в запросе MySQL, и ты этот момент почему-то никак не проверяешь. Ну ладно, допустим, $number у тебя железно присутствует в URL.

Второе. Тебе в данном примере форма ваще не нужна, потому что ты все параметры передаешь сам через URL, причем URL формируется скриптом, а не браузером. А никаких инпутов, в которых задается $number, я в твоей форме не вижу, поэтому $number она НИКОГДА не передаст по сабмиту. Так что нафиг форму.

Третье. Если уж ты очень хочешь передать $number именно через форму, используй
echo "<input type=hidden name=number value=$number>";

Четвертое. Если у тебя PHP какой-нибудь типа 4.2, то в нем по умолчанию в php.ini директива register_globals равна OFF (!!!), поэтому напрямую присвоить переменной значение через URL при установках по умолчанию НЕ ПОЛУЧИТСЯ, и значения переменных, переданные из формы или заданные в URL руками или в ссылке, НИФИГА не присвоятся переменным с соответствующими именами. Ступай в php.ini, поставь там register_globals в On, и перезапусти Apache. Все должно работать. Если ты конечно, еще и обратил внимание на пункты "второе" и "третье".



<font size=-2>[ Это сообщение было отредактировано: BadBlock в 2002-08-02 11:54 ]</font>

xm*DrAgoN*

№ 8 Сообщение xm*DrAgoN* » 02 авг 2002 11:13

> Конечно, потому что у тебя скрипт написан не прямыми руками,
> а твоими. :-) (шутю, шутю)
>
> Ладно, по порядку.
>
> Первое. У тебя изначально не задана переменная $number,
Блокыч, ты думаешь что я дурак что ли?????
> тем не менее, она тут же используется в запросе MySQL,
> и ты этот момент почему-то никак не проверяешь. Ну ладно,
> допустим, $number у тебя железно присутствует в URL.
>
> Второе. Тебе в данном примере форма ваще не нужна, потому
> что ты все параметры передаешь сам через URL, причем URL
> формируется скриптом, а не браузером. А никаких инпутов,
> в которых задается $number, я в твоей форме не вижу,
> поэтому $number она НИКОГДА не передаст по сабмиту. Так
> что нафиг форму.
>
> Третье. Если уж ты очень хочешь передать $number именно
> через форму, используй
> echo "<input type=hidden name=number value=$number>";
>
> Четвертое. Если у тебя PHP какой-нибудь типа 4.2, то в
> нем по умолчанию в php.ini директива register_globals
> равна OFF (!!!), поэтому напрямую присвоить переменной
> значение через URL при установках по умолчанию НЕ ПОЛУЧИТСЯ,
> и значения переменных, переданные из формы или заданные
> в URL руками или в ссылке, НИФИГА не присвоятся переменным
> с соответствующими именами. Ступай в php.ini, поставь
> там register_globals в On, и перезапусти Apache. Все должно
> работать. Если ты конечно, еще и обратил внимание на пункты
> "второе" и "третье".
>
>
>
> <font size=-2>[ Это сообщение было отредактировано: BadBlock
> в 2002-08-02 11:54 ]</font>
Мда, как все просто и локонично!!!!!! Ладно я все и так сделал!

Вернуться в «Компьютерный форум»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей