Ich bin mir nicht sicher, ob das überhaupt möglich ist. Aber ich habe mich gefragt, ob jemand weiß, wie man einen Hyperlink dazu bringt, einige Variablen zu übergeben und POST (wie ein Formular) im Gegensatz zu GET zu verwenden.
javascript
html
http
Elliot
quelle
quelle
Antworten:
Sie erstellen ein Formular mit versteckten Eingängen , die die Werte halten geschrieben, stellen Sie die zu Aktion des Formulars an die Ziel - URL, und die Form Methode zur Post . Wenn Sie dann auf Ihren Link klicken, lösen Sie eine JS-Funktion aus, die das Formular sendet.
Sehen Sie hier , für ein Beispiel. In diesem Beispiel wird reines JavaScript ohne jQuery verwendet. Sie können dies auswählen, wenn Sie nicht mehr installieren möchten, als Sie bereits haben.
quelle
GET
festzulegen? Wir hattenget
ohne die Form, nicht wahr?Sie benötigen dafür kein JavaScript. Ich wollte das nur klarstellen, da zum Zeitpunkt der Veröffentlichung dieser Antwort alle Antworten auf diese Frage auf die eine oder andere Weise die Verwendung von JavaScript beinhalten.
Sie können dies mit reinem HTML und CSS ziemlich einfach tun, indem Sie ein Formular mit ausgeblendeten Feldern erstellen, die die Daten enthalten, die Sie senden möchten, und dann die Schaltfläche "Senden" des Formulars so gestalten, dass es wie ein Link aussieht.
Beispielsweise:
Das genaue CSS, das Sie verwenden, kann variieren, je nachdem, wie reguläre Links auf Ihrer Website gestaltet sind.
quelle
Sie können Javascript-Funktionen verwenden. JQuery hat eine nette Post-Funktion eingebaut, wenn Sie sich dafür entscheiden, sie zu verwenden:
JQuery Post
quelle
$.post('page.php', {param: 1}, function() { window.location.href = 'page'.php' });
<a href="whyjavascript.html" id="postIt">Click Here</a>
und haben$("#postIt").on("click",function(e) { e.preventDefault(); $.post("WhateverPage.php", { name: "John", time: "2pm" } ); });
Dies ist eine alte Frage, aber keine der Antworten erfüllt die Anfrage vollständig. Also füge ich eine weitere Antwort hinzu.
Der angeforderte Code sollte meines Wissens nur eine Änderung an der Funktionsweise normaler Hyperlinks vornehmen: Die
POST
Methode sollte anstelle von verwendet werdenGET
. Die unmittelbaren Auswirkungen wären:href
POST
Ich benutze hier jquery, aber dies könnte mit nativen apis gemacht werden (härter und natürlich länger).
Um das Ergebnis anzuzeigen, speichern Sie Folgendes als Reflector.php in demselben Verzeichnis, in dem Sie das oben Gespeicherte gespeichert haben.
quelle
Ein weiteres Arbeitsbeispiel mit einem ähnlichen Ansatz: Erstellen Sie ein HTML-Formular und simulieren Sie den Beitrag mit Javascript. Dies bewirkt zwei Dinge: Daten auf einer neuen Seite veröffentlichen und in einem neuen Fenster / einer neuen Registerkarte öffnen.
HTML
JavaScript
quelle
HTML + JQuery : Ein Link, der ein verstecktes Formular mit POST sendet.
Da ich viel Zeit damit verbracht habe, all diese Antworten zu verstehen, und da alle einige interessante Details enthalten, ist hier die kombinierte Version, die schließlich für mich funktioniert hat und die ich wegen ihrer Einfachheit bevorzuge.
Mein Ansatz ist es erneut, ein verstecktes Formular zu erstellen und es durch Klicken auf einen Link an einer anderen Stelle auf der Seite einzureichen. Es spielt keine Rolle, wo im Hauptteil der Seite das Formular platziert wird.
Der Code für das Formular:
Beschreibung:
Das
display: none
versteckt die Form. Sie können es alternativ in ein div oder ein anderes Element einfügen und dasdisplay: none
auf das Element setzen.Das
type="hidden"
erstellt ein Feld, das nicht angezeigt wird, dessen Daten jedoch trotzdem an die Aktion übertragen werden ( siehe W3C ). Ich verstehe, dass dies der einfachste Eingabetyp ist.Der Code für den Link:
Beschreibung:
Das leere Ziel zielt
href
nur auf dieselbe Seite ab . In diesem Fall spielt es jedoch keine Rolle, dareturn false
der Browser dadurch nicht mehr dem Link folgen kann. Möglicherweise möchten Sie dieses Verhalten natürlich ändern. In meinem speziellen Fall enthielt die Aktion am Ende eine Umleitung.Das
onclick
wurde verwendet , zu vermeiden , mithref="javascript:..."
wie durch mplungjan bemerkt . Das$('#myHiddenFormId').submit();
wurde zum Senden des Formulars verwendet (anstatt eine Funktion zu definieren, da der Code sehr klein ist).Dieser Link sieht genauso aus wie jedes andere
<a>
Element. Sie können tatsächlich jedes andere Element anstelle von<a>
(zum Beispiel ein<span>
oder ein Bild) verwenden.quelle
Sie können diese jQuery-Funktion verwenden
Hier ist ein Beispiel in jsFiddle ( http://jsfiddle.net/S7zUm/ )
quelle
Wie in vielen Beiträgen erwähnt, ist dies nicht direkt möglich, aber ein einfacher und erfolgreicher Weg ist wie folgt: Zuerst fügen wir ein Formular in den Hauptteil unserer HTML-Seite ein, das keine Schaltflächen für die Übermittlung und auch deren Eingaben enthält sind versteckt. Dann verwenden wir eine Javascript-Funktion, um die Daten abzurufen und das Formular zu senden. Einer der Vorteile dieser Methode besteht darin, auf andere Seiten umzuleiten, was vom serverseitigen Code abhängt. Der Code lautet wie folgt: und jetzt überall dort, wo Sie eine "POST" -Methode benötigen:
quelle
Ich schlage einen dynamischeren Ansatz vor, ohne HTML-Codierung in die Seite, halten Sie es streng JS:
quelle
Anstelle von Javascript können Sie auch ein Etikett verwenden, das ein verstecktes Formular sendet. Sehr einfache und kleine Lösung. Das Etikett kann sich überall in Ihrem HTML befinden.
quelle
Überprüfen Sie dies, es wird Ihnen helfen
quelle