2013-09-30 5 views
-3

Можно ли создать форму отправки POST-стиля с помощью якоря?Можно ли передавать значение с помощью метода POST через гиперссылку?

<form> 
    <input name="foo" /> 
    <input name="bar" /> 

    <a href="#">Submit this form</a> 
</form> 

Оригинальный вопрос, также получает объясняется в this answer по Martijn

Можно ли передать значение, используя гиперссылку как метод POST ?? Я хочу передать значение при щелчке изображения на следующую страницу.

+0

[ru.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods](https: //en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods) может быть хорошим чтением. –

+0

Вы можете сделать вызов Ajax, чтобы переопределить ссылку. –

+1

Нажав на ссылку, которая имеет ссылку только на другой URL, будет запущен запрос 'GET'. Если вы хотите сделать сообщение, вам нужно будет использовать Javascript, чтобы заставить «POST» на событие click элемента. Проблемы с перекрестными доменами могут возникать, если вы связываетесь с другим доменом. – Renan

ответ

1

Я собираюсь оставить свой первоначальный ответ ниже, почему якорь не может выполнить почтовый вызов. Тем не менее, вопрос был rephrazed, этот ответ будет ответить на этот вопрос:

Вы не можете использовать якорь представить, но его несколько обычная практика, чтобы сделать его вызвать отправке:

$('a#myAnchor').click(function(){ $('#myForm').submit() }) 
/// Or an image, doesn't really matter for jQuery: 
$('img#myImg').click(function(){ $('#myForm').submit() }) 
// Or native js: 
document.getElementById('myImg').onclick = function(){ document.getElemetById('myForm').submit() }); 

если элемент вы хотите, чтобы вызвать подавать с находится внутри формы:

$('element').click(function(){ $(this).closest('form').submit() }); 

No. якоря GETbecause якоря отправить вас на URL, что делает его не GET, POST никогда.

СТОЛБ данных, которые отправляют в пост-формате, он получает кодирование таким образом сервер может обрабатывать его (важно для изображений и такие)

В другой теме this reply explains difference between GET and POST

Если вы должны, и Я имею в виду действительно нужны, вы можете использовать JQuery для подделки столбом, того allong этих строк:

// THIS IS AN UNTESTED DRAFT! Just to shown you a direction: 
$('a').click(function(e){ 
    e.preventDefault(); 
    var scriptname = this.href.replace(/\??(.*)?/, ''); // remove everything after '?' 
    var query  = this.href.replace(/(.*)\?/, ''); // remove everything before '?' 
    $.post(scriptname, query); 
}); 

Но опять же, не делает этого, если вы действительно не должны. Это отправит ajaxcall на сервер, так что эта страница вообще не изменится. Поскольку это плохая практика, я не буду показывать вам, как сделать изменение страницы по завершении, вам придется это выяснить с помощью jQuery POST documentation

+0

Добавьте тот факт, что OP может использовать Javascript, чтобы захватить щелчок на якоре и заставить «POST» с помощью Javascript, и у вас есть мой upvote;) – Renan

+0

ха-ха, просто работать над этим – Martijn

+0

<форма метода = «пост» действие = «zz.php»> могу ли я использовать $ _POST [ «занесена»], чтобы получить на zz.php? – Aayush

Смежные вопросы