|
|
|
| Как сделать, чтобы гиперссылка передавала значение переменной методом POST? Какие есть конструкции?
Вы в своих книгах предлагаете делать это методом GET (Самоучитель PHP5, стр. 575).
Конструкция получается такой:
<a href = $_SERVER[PHP_SELF]?var= … и так далее
Я использую этот вариант, чтобы к кнопке навигации между страницами привязать гиперссылку с переменной.
Но дело в том, что я передаю ту же переменную из формы методом POST.
В итоге в обработчике (у меня - в начале файла) приходится извлекать эту переменную и из массива $_GET и из массива $_POST. Хотелось бы избежать этих заморочек и остановица на чем-то то одном - а именно на POST. Но вот как передавать переменную методом POST через гиперссылку так и не придумал.
Что посоветуете? | |
|
|
|
|
|
|
|
для: ДацкыйКот
(12.02.2007 в 08:07)
| | Для передачи методом POST нужна форма. Через обычную ссылку никак - на то он и .POST | |
|
|
|
|
|
|
|
для: Unkind
(12.02.2007 в 08:40)
| | ну а что все тки придумать, чтоб через гиперссылку переменная передавалась?
есть извратный вариант: активировать гиперссылкой php-обработчик, где переводить GET в POST.
неохота просто сваливать переменные в строку.
должен же быдь какой-та обходной путь... | |
|
|
|
|
|
|
|
для: ДацкыйКот
(12.02.2007 в 09:22)
| | Может можно через AJAX...
<script language='Javascript'><!--
var req = false;
if (window.XMLHTTPRequest)
{
req = new XMLHTTPRequest();
}
elseif (window.ActiveXObject)
{
req = new ActiveXObject ('Microsoft.XMLHTTP');
}
function sendto (url, data)
{
if (!req) return;
req.open ('POST', url, 1);
req.send (data);
}
//--></script>
<a href='javascript:sendto('login.php','login=tester&password=trytoenter');'>Тестовый вход</a>
|
Может где-то и ошибся, но, в общем, мою мысль поняли... | |
|
|
|
|
|
|
|
для: bronenos
(12.02.2007 в 09:53)
| | спасибо за развернутый пост... не силен тока в джаве... не изучал никода... но по синтаксису более менее понятно... только вот гад не работает...
я так понимаю, он должен переходить на страницу login.php... но это сцуко не переходит...
уже и как html и как php сохранил файл... и настройки джавы проверил в файрволе... не переходит, собака такая...
может глянешь еще разок в свой скрипт? вдруг там где опечатка?
я тока в одном месте поправил (кавычки поменял снаружи ссылки на двойные:
<a href="javascript:sendto('login.php','login=tester&password=trytoenter');">Тестовый вход</a>
но это не помогло...
идея классная... на ней скорее остановлюсь... | |
|
|
|
|
|
|
|
для: ДацкыйКот
(12.02.2007 в 11:21)
| | а наф такие сложности??? AJAX привлекать в частности
<form action="скрипт" name="GoPost"><input type="hidden" name="имя переменной"></form>
<script>
function SubPost($val)
{
document.GoPost.имя_переменной.value = $val; // тут может напортачил, т.к. не помню, как к полям формы обращаться
document.GoPost.submit();
};
</script>
<a href="JavaScript:SubPost('Значение передаваемой переменной')">
|
Ну естессно, что переменных может быть скока угодно... в конце концов, на крайняк можно и так скрипт отписать, чтобы тот на лету при вызове создавал в абсолютном невидимом слое форму с нужными полями, назначал их из параметров (тогда в кач. параметра можно передавать GET строку), и сабмитил... - чобственно по схожему принципу и AJAX пашет, ток через другие технологии, когда они доступны... но кроссплатформенность у AJAX-а пока страдает... а простыми методами - тут ток и надо, чтобы JavaScript была разрешена у юзера (а Аяксу она просто жизненно необходима) | |
|
|
|
|
|
|
|
для: ZuArt
(12.02.2007 в 11:34)
| | Все заработало!!!
Небольшие добавки сделал: добавил в форму method="post", а то все GET-ом лезло через адресную строку.
И еще убрал пробелы вокруг знака равно:
document.GoPost.имя_переменной.value = $val
Рабочий итог:
<form action="скрипт" name="GoPost" method="post"><input type="hidden" name="имя переменной"></form>
<script>
function SubPost($val)
{
document.GoPost.имя_переменной.value=$val;
document.GoPost.submit();
};
</script>
<a href="JavaScript:SubPost('Значение передаваемой переменной')">
|
Проверил, с несколькими переменными тоже все нормально летает... СПАСИБА!!! | |
|
|
|
|
|
|
|
для: ДацкыйКот
(12.02.2007 в 13:39)
| | нзчт ;) | |
|
|
|
|
|
|
|
для: ДацкыйКот
(12.02.2007 в 09:22)
| | застрелиться, например....
PS... В другой ситуации, я может быть посоветовал бы глянуть на $_REQUEST[]
Но тут явно не поможет. Случай тяжелый. | |
|
|
|
|
|
|
|
для: Trianon
(12.02.2007 в 09:54)
| | Даже не знаю что скачать, по-моему стандартными средствами PHP - никак.
Создавайте форму, в ней кнопку, имитируйте ее вид под ссылку, средствами CSS и все =) | |
|
|
|
|
|
|
|
для: B@cZ
(12.02.2007 в 10:49)
| | хм... надо попробовать кстати так сделать... через кнопку в стиле ссылки... | |
|
|
|
|
|
|
|
для: ДацкыйКот
(12.02.2007 в 11:16)
| | Извените переклинило, я с чего-то взял, что вам надо не перезагружать страницу...
P.S. Он не должен переходить на вашу страницу, он должен только данные отсылать | |
|
|
|
|
|
|
|
для: ДацкыйКот
(12.02.2007 в 08:07)
| |
<form name="form1" method="POST">
<a href="javascript:void(0)" onClick="document.forms['form1'].submit()">LINK NAME</a>
<хиддэн филд с нужным значением>
</form>
|
типа того | |
|
|
|
|
|
|
|
для: hate
(12.02.2007 в 13:36)
| | афигеть... суперштука... бест код!!!
и сразу все поехало как нада как ни странно.... :))) | |
|
|
|