Je ne sais pas si c'est même possible. Mais je me demandais si quelqu'un sait comment faire passer un hyperlien à certaines variables et utiliser POST (comme un formulaire) par opposition à GET.
javascript
html
http
Elliot
la source
la source
Réponses:
Vous créez un formulaire avec des entrées masquées qui contiennent les valeurs à publier, définissez l' action du formulaire sur l'URL de destination et la méthode du formulaire à publier . Ensuite, lorsque vous cliquez sur votre lien, déclenchez une fonction JS qui soumet le formulaire.
Voir ici , pour un exemple. Cet exemple utilise du JavaScript pur, sans jQuery - vous pouvez le choisir si vous ne voulez rien installer de plus que ce que vous avez déjà.
la source
GET
? Nous avionsget
sans formulaire, non?Vous n'avez pas besoin de JavaScript pour cela. Je voulais juste que ce soit clair, car au moment où cette réponse a été publiée, toutes les réponses à cette question impliquaient l'utilisation de JavaScript d'une manière ou d'une autre.
Vous pouvez le faire assez facilement avec du HTML et du CSS purs en créant un formulaire avec des champs cachés contenant les données que vous souhaitez soumettre, puis en stylisant le bouton de soumission du formulaire pour ressembler à un lien.
Par exemple:
Le CSS exact que vous utilisez peut varier selon le style des liens réguliers sur votre site.
la source
Vous pouvez utiliser les fonctions javascript. JQuery a une belle fonction de publication intégrée si vous décidez de l'utiliser:
JQuery Post
la source
$.post('page.php', {param: 1}, function() { window.location.href = 'page'.php' });
<a href="whyjavascript.html" id="postIt">Click Here</a>
et avoir$("#postIt").on("click",function(e) { e.preventDefault(); $.post("WhateverPage.php", { name: "John", time: "2pm" } ); });
C'est une vieille question, mais aucune des réponses ne satisfait entièrement la demande. J'ajoute donc une autre réponse.
Si je comprends bien, le code demandé ne devrait apporter qu'une seule modification au fonctionnement des hyperliens normaux: la
POST
méthode doit être utilisée à la place deGET
. Les implications immédiates seraient:href
POST
J'utilise jquery ici, mais cela pourrait être fait avec des API natives (plus difficiles et plus longues bien sûr).
Et pour voir le résultat, enregistrez ce qui suit en tant que reflector.php dans le même répertoire que celui ci-dessus.
la source
Un autre exemple de travail, en utilisant une approche similaire publiée: créez un formulaire html, utilisez javascript pour simuler la publication. Cela fait 2 choses: publier des données sur une nouvelle page et les ouvrir dans une nouvelle fenêtre / un nouvel onglet.
HTML
Javascript
la source
HTML + JQuery : lien qui soumet un formulaire masqué avec POST.
Depuis que j'ai passé beaucoup de temps à comprendre toutes ces réponses, et comme elles ont toutes des détails intéressants, voici la version combinée qui a finalement fonctionné pour moi et que je préfère pour sa simplicité.
Mon approche consiste à nouveau à créer un formulaire caché et à le soumettre en cliquant sur un lien ailleurs dans la page. Peu importe où dans le corps de la page le formulaire sera placé.
Le code du formulaire:
La description:
Le
display: none
masque le formulaire. Vous pouvez également le placer dans un div ou un autre élément et définirdisplay: none
l'élément sur l'élément.Le
type="hidden"
va créer un fild qui ne sera pas affiché mais ses données seront transmises à l'action de toute façon ( voir W3C ). Je comprends que c'est le type d'entrée le plus simple.Le code du lien:
La description:
Le vide
href
ne cible que la même page . Mais cela n'a pas vraiment d'importance dans ce cas, carreturn false
cela empêchera le navigateur de suivre le lien. Vous pouvez bien sûr changer ce comportement. Dans mon cas spécifique, l'action contenait une redirection à la fin.Le a
onclick
été utilisé pour éviter d'utiliserhref="javascript:..."
comme indiqué par mplungjan . Le a$('#myHiddenFormId').submit();
été utilisé pour soumettre le formulaire (au lieu de définir une fonction, car le code est très petit).Ce lien ressemblera exactement à tout autre
<a>
élément. Vous pouvez réellement utiliser n'importe quel autre élément à la place de<a>
(par exemple un<span>
ou une image).la source
Vous pouvez utiliser cette fonction jQuery
Voici un exemple dans jsFiddle ( http://jsfiddle.net/S7zUm/ )
la source
Comme mentionné dans de nombreux articles, ce n'est pas directement possible, mais un moyen simple et efficace est le suivant: Tout d'abord, nous mettons un formulaire dans le corps de notre page html, qui n'a pas de boutons pour la soumission, ainsi que ses entrées sont cachés. Ensuite, nous utilisons une fonction javascript pour obtenir les données et envoyer le formulaire. L'un des avantages de cette méthode est de rediriger vers d'autres pages, qui dépend du code côté serveur. Le code est le suivant: et maintenant, partout où vous avez besoin d'un pour être dans la méthode "POST":
la source
Je suggère une approche plus dynamique, sans codage html dans la page, gardez-la strictement JS:
la source
Au lieu d'utiliser javascript, vous pouvez également utiliser une étiquette envoyant un formulaire masqué. Solution très simple et petite. L'étiquette peut être n'importe où dans votre html.
la source
Vérifiez cela, cela vous aidera
la source