Передача данных методом POST без input type=submit

UNREALre

Новичок
Передача данных методом POST без input type=submit

Доброго времени суток всем!
И заодно с новым годом :)
Возник вопрос, из разряда ламерских, как я думаю... Поискал в поиске - нашёл некоторые решения, просто хотел убедиться, что они корректны и вполне юзабильны.

Проблема в том - что есть некоторая форма, информация передаётся php-скрипту методом POST. Но она должна передать не с помощью <input type="submit" ...> а с помощью обычной ссылки, например <a href="xx.php">Send</a>.
Вопрос в том, как реализовать процесс передачи данных POST-ом, после того, как юзер нажал на эту ссылку?

Вот нашёл один пример, единственная сложность в том, что там уже данные известны, а в моём случае, если его использовать, видимо, надо будет применять JS?

Вот код :

$name = "Login";
$pass = "Password";

$hostname = "chat.my";
$fp = fsockopen($hostname,80);

$data = "name=".urlencode($name)."&pass=".urlencode($pass)."\r\n\r\n";
$headers = "POST /w/handler.php HTTP/1.1\r\n"
."Host: $hostname\r\n"
."Content-type: application/x-www-form-urlencoded\r\n"
."Content-Length: ".strlen($data)."\r\n\r\n";
fwrite($fp,$headers.$data);


Если кто-чем подскажет -- буду благодарен!

Всем заранее спасибо! :)
 

UNREALre

Новичок
Заказчик просит. Его не устраивает вид кнопки. Хочет ссылкой под дизайн остального проекта.
 

HraKK

Мудак
Команда форума
А что мешает сделать так?
<input type=image>
или
<a href=# onclick=document.form.myform.submit()>

-~{}~ 01.01.07 02:18:

Твой вариант не будет работать.

-~{}~ 01.01.07 02:18:

А еще кто мешает style прописать что б устраивало ?)
 

UNREALre

Новичок
<form name="myfrm" method="post" action="post.php">
<input type="text" id="txt1" size="20">
<input type="text" id="txt3" size="20">
<a href="post.php" onclick="document.form.myfrm.submit()">Send</a>

Ты так имеешь ввиду? Если да - то массив $_POST в post.php -- пуст...


Извини, но я не знаю, как прописать такой стиль для буттона, чтобы он выглядел гиперссылкой и ещё с hover-эффектом ?
 

HraKK

Мудак
Команда форума
UNREALre
А что ты туда передаешь? Ничего. Поэтому он и пуст.
 

UNREALre

Новичок
HraKK, я туда не ничего не передаю, а передаю то, что ввёл на странице заполнения формы - я заполнил два текста и нажал на линку. Результат - как я говорил выше.
 

Фанат

oncle terrible
Команда форума
а какое отношение к вопросу имеет код, приведённый в первом сообщении?

-~{}~ 01.01.07 14:51:

<input type="text" id="txt1" size="20">
даааа. прям загадка Сфинкса. Почему это вдруг в массиве $_POST оказывается пусто?

А если кнопку к этой форме добавить - массив $_POST сразу появляется, да?
 

UNREALre

Новичок
Фанат, привет! Давно не общались... )

Да, если прикрутить кнопку - то $_POST заполняется корректно. Ты привёл цитатой html инпута моего, если ты имеешь ввиду, что я упустил тут name="txt1", то это дело не спасает - у меня POST пустой и с name, если используется ссылка.

Ты, наверное, знаешь ответ ) Но не говоришь как всегда - поэтому, может, дай хотя бы линку, где найти то, что мне надо -- т.к. сам найти не смог.
 

Фанат

oncle terrible
Команда форума
Да, если прикрутить кнопку - то $_POST заполняется корректно.
Убейся об стену. И никогда больше не говори неправды.
если ты имеешь ввиду, что я упустил тут name="txt1", то это дело не спасает
пипец.
"Мужики! У меня машина не едет! А то, что она без колёс - это вы не смотрите. Она и с колёсами, и без колёс не едет".
А НАФИГА ТЫ ИХ ВООБЩЕ СНИМАЛ?
может, дай хотя бы линку,
тебе уже дали. целый ответ. с кодом.
осталось воткнуть его, УБРАТЬ ОПЕЧАТКИ, и радоваться жизни.
 

UNREALre

Новичок
Фанат, я понимаю, что безнадежно туп -- но тем не менее -- пожалуйста, уж ткни пальцем, чтобы мне стало стыдно и понятно :

<form name="myfrm" method="post" action="post.php">
<input type="text" id="txt1" name="txt1" size="20">
<input type="submit" value="Go">
<a href="post.php" onclick="document.form.myfrm.submit()">Send</a>
</form>

я жму на кнопку и получаю на экране (при выводе $_POST) :
Array ( [txt1] => test )

Я жму на ссылку и получаю :
Array ( )

Если не очень трудно - "убери опечатки", пожалуйста за меня - сам не могу этого сделать.
 

avenger_msoft

Новичок
2UNREALre

Попробуй в место этого
PHP:
<a href="post.php" onclick="document.form.myfrm.submit()">Send</a>
так:
PHP:
<a href="#" onclick="document.form.myfrm.submit()">Send</a>
или так:
PHP:
<a href="void(0);" onclick="document.form.myfrm.submit()">Send</a>
А вообще, почитай в документации JS про "cancelBubble Property"
http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/cancelbubble.asp

-~{}~ 01.01.07 17:53:

У тебя "предустановленное" событие для тэга <a> срабатывает раньше, чем переопределенное. Что форму надо отослать скрипту post.php и так ясно браузеру из тега <form>, так как document.form.myfrm.submit() - своеобразный аналог кнопки Submit.
 

hermit_refined

Отшельник
PHP:
onClick = "document.myfrm.submit(); return false;" // JavaScript 1.1
onClick = "document.forms.myfrm.submit(); return false;" // DOM Level 1
 

UNREALre

Новичок
avenger_msoft, hermit_refined

Большое спасибо! return false; помог :)

Спасибо ещё раз!
 
Сверху