HTMLのAタグ(アンカータグ)は、以下のように、GET型では値が渡せます。
<A HREF="飛びたいURL?項目名=値">
でも、GET型では長い値を渡せないし、ブラウザの上に、その渡した値が並ぶのも・・・っていうので、POST型で渡したい場合があります。
で、このとき、昨日のsubmit()を使うと出来るので、ちょっとその話。
以下のように、Formのinputタグのhiddenで(例だとaaa)に渡したい値をセットして、actionに飛び先のURL、methodをPOSTで設定すれば、POST型で飛びます。
<html> <body> <A HREF="" onclick="document.form1.submit();return false;" > テスト</A> <form name="form1" method="POST" action="http://127.0.0.1/test.php"> <input type=hidden name="aaa" value="bbb"> </form> </body> </html> |
(上記< >は、本当は半角)
ここで、AタグのHREFがないと、リンク先のアンダーバーが引かれない(ので、クリックできない)ことと、onclickでreturn false;を入れないと、リンク先に行こうとしてしまうことに注意してください。
で、このとき、受け手のtest.phpを
<?php echo 'GET' . $_GET['aaa'] . "<BR>"; echo 'POST' . $_POST['aaa'] . "<BR>"; ?> |
(上記< >は、本当は半角)
のように記述すると、POSTのほうにbbbと出る(GETのほうはでない)と思います。
ちなみに、以下のように
<html> <script language="JavaScript"> function zikko() { document.form1.aaa.value="ccc"; document.form1.submit(); } </script> <body> <A HREF="" onclick="zikko();return false;" > テスト</A> <form name="form1" method="POST" action="http://127.0.0.1/test.php"> <input type=hidden name="aaa" value="bbb"> </form> </body> </html> |
(上記< >は、本当は半角)
onclickを、自分の用意した関数(上記例ではzikko())に飛ぶようにして、その中で、
document.フォーム名.hiddenの変数名.value=設定値;
で値を設定してから
document.フォーム名.submit();
ってすると、POSTの引数に値を渡せる。