No estoy seguro de si esto es posible. Pero me preguntaba si alguien sabe cómo hacer que un hipervínculo pase algunas variables y use POST (como un formulario) en lugar de GET.
javascript
html
http
Elliot
fuente
fuente
Respuestas:
Crea un formulario con entradas ocultas que contienen los valores que se publicarán, establece la acción del formulario en la URL de destino y el método de formulario para publicar . Luego, cuando haga clic en su enlace, active una función JS que envíe el formulario.
Ver aquí , para un ejemplo. Este ejemplo usa JavaScript puro, sin jQuery; puede elegir esto si no desea instalar nada más de lo que ya tiene.
fuente
GET
? Tuvimosget
sin la forma, ¿no?No necesitas JavaScript para esto. Solo quería aclararlo, ya que desde el momento en que se publicó esta respuesta, todas las respuestas a esta pregunta implican el uso de JavaScript de una forma u otra.
Puede hacer esto con bastante facilidad con HTML y CSS puros creando un formulario con campos ocultos que contengan los datos que desea enviar, luego aplicando el botón de envío del formulario para que parezca un enlace.
Por ejemplo:
El CSS exacto que use puede variar según el estilo de los enlaces regulares en su sitio.
fuente
Puedes usar las funciones de JavaScript. JQuery tiene una buena función de publicación incorporada si decides usarla:
JQuery Post
fuente
$.post('page.php', {param: 1}, function() { window.location.href = 'page'.php' });
<a href="whyjavascript.html" id="postIt">Click Here</a>
y tener$("#postIt").on("click",function(e) { e.preventDefault(); $.post("WhateverPage.php", { name: "John", time: "2pm" } ); });
Esta es una vieja pregunta, pero ninguna de las respuestas satisface la solicitud en su totalidad. Entonces estoy agregando otra respuesta.
El código solicitado, según tengo entendido, debería hacer solo un cambio en la forma en que funcionan los hipervínculos normales: el
POST
método debe usarse en lugar deGET
. Las implicaciones inmediatas serían:href
POST
Estoy usando jquery aquí, pero esto podría hacerse con apis nativas (más duras y largas, por supuesto).
Y para ver el resultado, guarde lo siguiente como reflector.php en el mismo directorio que tiene guardado lo anterior.
fuente
Otro ejemplo de trabajo, utilizando un enfoque similar publicado: cree un formulario html, use javascript para simular la publicación. Esto hace 2 cosas: publicar datos en una nueva página y abrirlos en una nueva ventana / pestaña.
HTML
JavaScript
fuente
HTML + JQuery : un enlace que envía un formulario oculto con POST.
Dado que pasé mucho tiempo para comprender todas estas respuestas, y dado que todas tienen algunos detalles interesantes, aquí está la versión combinada que finalmente funcionó para mí y que prefiero por su simplicidad.
Mi enfoque es nuevamente crear un formulario oculto y enviarlo haciendo clic en un enlace en otra parte de la página. No importa en qué parte del cuerpo de la página se colocará el formulario.
El código para el formulario:
Descripción:
El
display: none
oculta la forma. Alternativamente, puede ponerlo en un elemento div u otro y establecerlodisplay: none
en el elemento.El
type="hidden"
creará un archivo que no se mostrará, pero sus datos se transmitirán a la acción de todos modos ( ver W3C ). Entiendo que este es el tipo de entrada más simple.El código para el enlace:
Descripción:
El vacío
href
solo apunta a la misma página . Pero realmente no importa en este caso, ya quereturn false
impedirá que el navegador siga el enlace. Es posible que desee cambiar este comportamiento, por supuesto. En mi caso específico, la acción contenía una redirección al final.Se
onclick
utilizó para evitar el usohref="javascript:..."
como lo señaló mplungjan . Se$('#myHiddenFormId').submit();
utilizó para enviar el formulario (en lugar de definir una función, ya que el código es muy pequeño).Este enlace se verá exactamente como cualquier otro
<a>
elemento. En realidad, puede usar cualquier otro elemento en lugar de<a>
(por ejemplo, una<span>
o una imagen).fuente
Puedes usar esta función jQuery
Aquí hay un ejemplo en jsFiddle ( http://jsfiddle.net/S7zUm/ )
fuente
Como se menciona en muchas publicaciones, esto no es directamente posible, pero una manera fácil y exitosa es la siguiente: Primero, colocamos un formulario en el cuerpo de nuestra página html, que no tiene ningún botón para enviar, y también sus entradas están escondidos. Luego usamos una función de JavaScript para obtener los datos y enviar el formulario. Una de las ventajas de este método es redirigir a otras páginas, lo que depende del código del lado del servidor. El código es el siguiente: y ahora en cualquier lugar necesita un método "POST":
fuente
Sugiero un enfoque más dinámico, sin codificación html en la página, manténgalo estrictamente JS:
fuente
En lugar de usar JavaScript, también puede usar una etiqueta que envíe un formulario oculto. Muy simple y pequeña solución. La etiqueta puede estar en cualquier parte de su html.
fuente
Mira esto te ayudará
fuente