Есть страница page.php. На ней имеется ряд ссылок. Ссылки открывают эту же страницу, но с различными значениями параметров page и mode. То есть адрес ссылки выглядит так: page.php?mode=1&page=10. Мне нужно, чтобы при нажатии на ссылку произошла передача этих параметров методом POST. В общем виде для каждой ссылки я реализовал это так: HTML: <form name="form1" enctype="multipart/form-data" action="1.php" method="post"> <a href="javascript:void(0)" OnClick='document.form1.page.value="10"; document.form1.mode.value="1"; document.form1.submit();'>Ссылка</a> </form> <input type="hidden" name="page" value="0"> <input type="hidden" name="mode" value="0"> Метод рабочий, но некрасивый. Посоветуйте, как сделать проще, не используя дополнительных скрытых полей.
Так лучше: HTML: <form name="form1" enctype="multipart/form-data" action="1.php" method="post"> <input type="hidden" name="page" value="10"> <input type="hidden" name="mode" value="1"> <a href="javascript:void(0)" OnClick='document.form1.submit();'>Ссылка</a> </form>
Дело в том, что ссылок у меня много. Если каждую ссылку засовывать в отдельную форму и создавать там же скрытые поля, то отправляться будут значения с полей последней формы. Это происходит потому, что у полей одинаковые имена.
Kazam Делай 1 скрытую форму. Отправляй ее через функцию: HTML: <script language="JavaScript"> function SubmitForm(page, mode) { document.form1.page.value = page; document.form1.mode.value = mode; document.form1.submit(); } </script> <form name="form1" enctype="multipart/form-data" action="1.php" method="post"> <input type="hidden" name="page"> <input type="hidden" name="mode"> </form> <a href="javascript:SubmitForm(10,1);">Ссылка 1</a> <a href="javascript:SubmitForm(2,12);">Ссылка 2</a> <a href="javascript:SubmitForm(21,33);">Ссылка 3</a>
Это то же самое, что и я написал, только вынесено в отдельную функцию. Вопрос стоит такой, как послать эти параметры через POST, не используя скрытые поля вообще.
Не хочу использовать куки, потому что там, где будут проссматривать страничку, возможно, они будут запрещены. Вообще, думаю, я сам справлюсь. Спасибо.
На самом деле есть еще несколько способов. Можно передать данные в сессии, в куки, но поскольку Вас интересует POST вот Вам несколько ссылок http://webi.ru/webi_articles/6_7_f.html http://www.masterwebs.ru/index.php?showtopic=3509 http://i-novice.net/peredacha-formy-met ... sposobami/ http://sevidi.ru/webd/dweb/phppage62.php Или можно сделать так <?php print_r($_POST); ?> <br> <html> <head> </head> <body> <script language="JavaScript" type="text/javascript"> function submForm( var_name, var_value ) { var f = document.getElementById( "id_form" ); var hid = document.createElement( "input" ); hid.setAttribute( "type", "hidden" ); hid.setAttribute( "name", var_name ); hid.value = var_value; f.appendChild( hid ); /* Отправка формы */ f.submit(); return false; // На всякий случай, чтобы ссылка не сработала. } </script> <form method=POST id="id_form"> </form> <a href="#" onclick="return submForm('id1','Переменная 1')">Первый</a><br> <a href="#" onclick="return submForm('id2','Переменная 2')">Второй</a> <br> </body> </html>