Я не уверен, возможно ли это вообще. Но мне было интересно, знает ли кто-нибудь, как заставить гиперссылку передавать некоторые переменные и использовать POST (например, форму), а не GET.
javascript
html
http
Эллиот
источник
источник
Ответы:
Вы создаете форму со скрытыми входными данными, в которой хранятся значения для публикации, задаете действие формы для целевого URL и метод формы для публикации . Затем, когда вы нажмете на вашу ссылку, запустите функцию JS, которая отправит форму.
Смотрите здесь , для примера. В этом примере используется чистый JavaScript, без jQuery - вы можете выбрать это, если не хотите устанавливать что-то большее, чем у вас уже есть.
источник
GET
? У нас былоget
без формы, не так ли?Вам не нужен JavaScript для этого. Я просто хотел прояснить это, поскольку на момент публикации этого ответа все ответы на этот вопрос так или иначе связаны с использованием JavaScript.
Вы можете сделать это довольно просто с помощью чистого HTML и CSS , создав форму со скрытыми полями, содержащими данные, которые вы хотите отправить, и стилизовав кнопку отправки формы, чтобы она выглядела как ссылка.
Например:
Точный CSS, который вы используете, может отличаться в зависимости от того, как стилизованы обычные ссылки на вашем сайте.
источник
Вы можете использовать функции JavaScript. JQuery имеет хорошую встроенную функцию post, если вы решите ее использовать:
JQuery Post
источник
$.post('page.php', {param: 1}, function() { window.location.href = 'page'.php' });
<a href="whyjavascript.html" id="postIt">Click Here</a>
и иметь$("#postIt").on("click",function(e) { e.preventDefault(); $.post("WhateverPage.php", { name: "John", time: "2pm" } ); });
Это старый вопрос, но ни один из ответов не удовлетворит запрос полностью. Поэтому я добавляю еще один ответ.
Запрашиваемый код, как я понимаю, должен внести только одно изменение в работу нормальных гиперссылок:
POST
вместо него следует использовать методGET
. Непосредственные последствия будут:href
POST
Я использую jquery здесь, но это может быть сделано с нативным API (сложнее и дольше, конечно).
И чтобы увидеть результат, сохраните следующее как refleor.php в том же каталоге, что и выше.
источник
Другой рабочий пример, использующий похожий опубликованный подход: создайте HTML-форму, используйте javascript для имитации публикации. Это делает 2 вещи: размещать данные на новой странице и открывать их в новом окне / вкладке.
HTML
JavaScript
источник
HTML + JQuery : ссылка, которая отправляет скрытую форму с помощью POST.
Так как я потратил много времени, чтобы понять все эти ответы, и так как у всех них есть некоторые интересные детали, вот комбинированная версия, которая наконец-то сработала для меня и которую я предпочитаю за ее простоту.
Мой подход заключается в том, чтобы снова создать скрытую форму и отправить ее, нажав ссылку в другом месте на странице. Неважно, где в теле страницы будет размещена форма.
Код для формы:
Описание:
display: none
Скрывает форму. Вы также можете поместить его в элемент div или другой элемент и установитьdisplay: none
элемент on.type="hidden"
Создаст FILD , который не будет показан , но его данные будут передаваться в eitherways действий ( см W3C ). Я понимаю, что это самый простой тип ввода.Код для ссылки:
Описание:
Пустой
href
просто нацелен на ту же страницу . Но в данном случае это не имеет значения, так какreturn false
браузер не сможет перейти по ссылке. Вы можете изменить это поведение, конечно. В моем конкретном случае действие содержало перенаправление в конце.Это
onclick
использовалось, чтобы избежать использованияhref="javascript:..."
как отмечено mplungjan .$('#myHiddenFormId').submit();
Был использован для отправки формы (вместо того , чтобы определить функцию, так как код очень мало).Эта ссылка будет выглядеть точно так же, как и любой другой
<a>
элемент. Вы можете использовать любой другой элемент вместо<a>
(например, a<span>
или изображение).источник
Вы можете использовать эту функцию jQuery
Вот пример в jsFiddle ( http://jsfiddle.net/S7zUm/ )
источник
Как упоминалось во многих постах, это невозможно напрямую, но простой и успешный способ заключается в следующем: во-первых, мы помещаем форму в тело нашей html-страницы, в которой нет кнопок для отправки, а также для ввода. скрыты Затем мы используем функцию javascript, чтобы получить данные и отправить форму. Одним из преимуществ этого метода является перенаправление на другие страницы, что зависит от кода на стороне сервера. Код выглядит следующим образом: теперь вам нужно использовать метод "POST":
источник
Я предлагаю более динамичный подход, без HTML-кодирования на странице, строго придерживайтесь JS:
источник
Вместо использования javascript вы также можете использовать метку, отправляющую скрытую форму. Очень простое и маленькое решение. Метка может быть где угодно в вашем HTML.
источник
Проверьте это, это поможет вам
источник