SMART LLC

hrefリンクでパラメータをPOSTする方法

公開日:2016/06/08

今日暇すぎてもうひとつ投下。
あるプロジェクトでCSVダウンロード用のリンクがボタンじゃなくてテキストだった。
でaタグのhrefにURL書いたらGET送信じゃん!パラメータ見えちゃってダサいじゃん!て思って。
hrefリンク(aタグ)をクリックしてPOST送信する方法をメモする。

onclickイベントで解決

aタグのonclickイベントを使って解決した。

<form name="download" action="csv.php" method="post">
	<input type="hidden" name="param" value="たこ">
</form>
<a href="csv.php" onclick="document.download.submit();return false;">ダウンロード</a>

簡単。POST送信用のformタグ作ってaタグのonclickタグでクリックイベントをハンドルして実行してやればOK。
実際に呼び出されるページはformタグのaction属性だから、aタグのhref属性は何を入れてもいい。
けどブラウザのステータスバーに表示されるからまあaction属性と同じ値にしといたほがかっこいいかも。
あとhref属性自体を消しちゃうと見た目がリンクじゃなくなる。クリックすれば飛ぶけど。

SHARE