Передать POST данные по ссылке можно с помощью JavaScripta. И не надо считать это глупостью или лишним кодом. Иногда приходиться. Бывают случаи, когда нужно передать некие данные на другую страницу вашего сайта. Кнопка не всегда удобный вариант. Например,
ваша ссылка бросается в глаза пользователя за счёт цвета, подчёркивания и тем, что курсор меняется, если на неё навести. Можно применить метод GET, но не хочется портить вид ссылки особенно если предаются рабочие данные либо просто много данных. Выглядит это, мягко говоря, не совсем гармонично. А если посетитель ещё и в закладки добавит сайт именно с таким GET хвостом.... С помощью кнопки использовать данные POST конечно проще и удобней. Но мы ведь не ищем лёгких путей, верно ?
Итак, обычного HTML что бы передать ссылкой POST данные нам уже не достаточно, обратимся за помощью к JavaScript. Например, нужно передать несколько значений переменных методом POST. Посмотрим, что будет в примере: Для начала PHP код принимает POST данные и выводит из на экран. Затем идёт HTML форма one. 2 ссылки передающие разные переменные. И еще одна форма под именем two.
Создайте файл, например "test.php". Скопируйте туда этот код примера:
<?php
echo 'Значение раз: '.$_POST[data1].'<br>';
echo 'Значение два: '.$_POST[data2].'<br>';
?>
<form name="one" id="one" method="post">
<input name="data1" id="data1" type="hidden" value="12345" />
<input name="data2" id="data2" type="hidden" value="abcde" />
</form>
<a href="#" onClick="javascript: document.one.submit(); return false;">Линк</a><br>
<a href="#" onClick="javascript: document.two.submit(); return false;">Ссылка</a>
<form name="two" id="two" method="post">
<input name="data1" id="data1" type="hidden" value="HTML+PHP" />
<input name="data2" id="data2" type="hidden" value="and JavaScript" />
</form>
Обратите внимание JavaScript видит весь HTML документ - не обязательно сначала прописать форму, а потом публиковать линк. Это можно делать в произвольном порядке.
Следующее что не следует забывать: Когда будете писать свой код не забывайте задавать и name и id формы: "form name="two" id="two" method="post". Это необходимо для совместимости разных версий JavaScript.
Думаю из примера понятно как вызывается сабмит формы ? Но на всякий... При клике на линк идёт обращение к JS. "javascript: document.two.submit()". JS ищет в данном документе ("document"), в нашем случае это содержимое файла test.php объект с именем или номером ("two") и применяет к нему функцию submit(). В общем JS кликает за нас по форме.
У данного метода есть один изъян. У пользователя в боусере может быть отключен JavaScript. Тогда ваши линки перестанут работать. Но в современном вебе что то искать в сети с отключенным JS практически не возможно. Так что изъян скорее из области теорий.