Saya tidak yakin apakah ini mungkin. Tapi saya bertanya-tanya apakah ada yang tahu cara membuat hyperlink melewati beberapa variabel dan menggunakan POST (seperti formulir) sebagai lawan GET.
javascript
html
http
Elliot
sumber
sumber
Jawaban:
Anda membuat formulir dengan input tersembunyi yang menahan nilai yang akan diposting, atur tindakan formulir ke url tujuan, dan metode formulir untuk memposting . Kemudian, ketika tautan Anda diklik, memicu fungsi JS yang mengirimkan formulir.
Lihat di sini , misalnya. Contoh ini menggunakan JavaScript murni, tanpa jQuery - Anda dapat memilih ini jika Anda tidak ingin menginstal apa pun lebih dari yang sudah Anda miliki.
sumber
GET
? Kami punyaget
tanpa formulir, bukan?Anda tidak perlu JavaScript untuk ini. Hanya ingin memperjelas, karena pada saat jawaban ini diposting, semua jawaban untuk pertanyaan ini melibatkan penggunaan JavaScript dalam beberapa cara.
Anda dapat melakukan ini dengan cukup mudah dengan HTML dan CSS murni dengan membuat formulir dengan bidang tersembunyi yang berisi data yang ingin Anda kirim, lalu menata tombol kirim dari formulir agar terlihat seperti tautan.
Sebagai contoh:
CSS persis yang Anda gunakan dapat bervariasi tergantung pada bagaimana tautan reguler di situs Anda ditata.
sumber
Anda dapat menggunakan fungsi javascript. JQuery memiliki fungsi posting yang bagus jika Anda memutuskan untuk menggunakannya:
JQuery Post
sumber
$.post('page.php', {param: 1}, function() { window.location.href = 'page'.php' });
<a href="whyjavascript.html" id="postIt">Click Here</a>
dan memiliki$("#postIt").on("click",function(e) { e.preventDefault(); $.post("WhateverPage.php", { name: "John", time: "2pm" } ); });
Ini adalah pertanyaan lama, tetapi tidak ada jawaban yang memuaskan permintaan secara penuh. Jadi saya menambahkan jawaban lain.
Kode yang diminta, seperti yang saya pahami, seharusnya hanya membuat satu perubahan pada cara kerja hyperlink normal:
POST
metode yang seharusnya digunakanGET
. Implikasi langsungnya adalah:href
POST
Saya menggunakan jquery di sini, tetapi ini bisa dilakukan dengan apis asli (tentu saja lebih sulit dan lebih lama).
Dan untuk melihat hasilnya, simpan yang berikut ini sebagai reflector.php di direktori yang sama dengan yang Anda simpan di atas.
sumber
Contoh kerja lain, menggunakan pendekatan serupa yang diposting: buat formulir html, gunakan javascript untuk mensimulasikan posting. Ini melakukan 2 hal: memposting data ke halaman baru dan membukanya di jendela / tab baru.
HTML
JavaScript
sumber
HTML + JQuery : Tautan yang mengirimkan formulir tersembunyi dengan POST.
Karena saya menghabiskan banyak waktu untuk memahami semua jawaban ini, dan karena semuanya memiliki detail yang menarik, inilah versi gabungan yang akhirnya bekerja untuk saya dan yang saya sukai karena kesederhanaannya.
Pendekatan saya lagi adalah untuk membuat formulir tersembunyi dan mengirimkannya dengan mengklik tautan di tempat lain di halaman. Tidak masalah di mana di tubuh halaman formulir akan ditempatkan.
Kode untuk formulir:
Deskripsi:
The
display: none
menyembunyikan formulir. Anda dapat menaruhnya di div atau elemen lain dan mengaturnyadisplay: none
pada elemen.The
type="hidden"
akan menciptakan fild yang tidak akan ditampilkan tetapi datanya akan dikirim ke eitherways tindakan ( lihat W3C ). Saya mengerti bahwa ini adalah tipe input yang paling sederhana.Kode untuk tautan:
Deskripsi:
Yang kosong
href
hanya menargetkan halaman yang sama . Tapi tidak masalah dalam hal ini karenareturn false
browser akan menghentikan mengikuti tautan. Anda mungkin ingin mengubah perilaku ini tentu saja. Dalam kasus khusus saya, tindakan tersebut berisi pengalihan di akhir.Itu
onclick
digunakan untuk menghindari penggunaanhref="javascript:..."
seperti yang dicatat oleh mplungjan . Itu$('#myHiddenFormId').submit();
digunakan untuk mengirimkan formulir (alih-alih mendefinisikan fungsi, karena kodenya sangat kecil).Tautan ini akan terlihat persis seperti
<a>
elemen lainnya . Anda benar-benar dapat menggunakan elemen lain alih-alih<a>
(misalnya a<span>
atau gambar).sumber
Anda dapat menggunakan fungsi jQuery ini
Berikut adalah contoh di jsFiddle ( http://jsfiddle.net/S7zUm/ )
sumber
Seperti disebutkan dalam banyak posting, ini tidak mungkin secara langsung, tetapi cara yang mudah dan sukses adalah sebagai berikut: Pertama, kami meletakkan formulir di badan halaman html kami, yang tidak memiliki tombol untuk mengirim, dan juga masukannya disembunyikan. Kemudian kami menggunakan fungsi javascript untuk mendapatkan data dan, mengirim formulir. Salah satu keuntungan dari metode ini adalah untuk mengarahkan ulang ke halaman lain, yang tergantung pada kode sisi server. Kode tersebut adalah sebagai berikut: dan sekarang di mana saja Anda memerlukan metode "POST":
sumber
Saya menyarankan pendekatan yang lebih dinamis, tanpa coding html ke dalam halaman, pertahankan dengan ketat JS:
sumber
Alih-alih menggunakan javascript, Anda juga bisa menggunakan label yang mengirimkan formulir tersembunyi. Solusi yang sangat sederhana dan kecil. Label bisa di mana saja di html Anda.
sumber
Periksa ini akan membantu Anda
sumber