リンクをクリックした時にformからPOST送信する方法は?

このQ&Aのポイント
  • HTML、PHP、JavaScript等でサイトを作っている場合、formからPOST送信する方法を知りたい。
  • 既にsubmitボタンを使用したPOST送信は実現できているが、リンクをクリックした場合にもPOST送信する方法がわからない。
  • GETではなく、必ずPOST送信を行いたい。
回答を見る
  • ベストアンサー

リンクをクリックした時にformからPOST送信したい。

HTML、PHP、JavaScript等でサイトを作っているのですが・・・。 【実現出来ている例】 <form name="form1" method="post" action="Next.php" onSubmit="return InputCheck()">  <input type="submit" value="送信"> </form>  submitボタンを一つ置いて、それがクリックされた場合に formの内容をPOSTで送信する。 【実現したい例】 <form name="form1 method="post">  <a href="Next.php" onClick="???">???</a> </form>  formの中のリンクをクリックされた場合に、formの内容を POSTで送信したいのですが、その実現方法がわかりません。 GETで送るという手もあり得ますが、今回はどうしてもPOST したいのですが。

  • HTML
  • 回答数2
  • ありがとう数10

質問者が選んだベストアンサー

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

<form name="form1" method="post" action="Next.php"> <a href="#" onClick="document.form1.submit();">???</a> </form> onclick内の対象がform1としてあてているので、 アンカータグは別にform内に記述しなくても大丈夫です form内にhidden等でnameとvalueを持ったパラメータがあればそれも送られます アンカータグから動的にvalueを変更したい場合は、 document.form1.hogename.value = 'hoge'; 等をsubmit()の前に行えば可能です ただしform内に <input type="hidden" name="hogename" value=""> を記述する等、変更先パラメータの元を用意する必要がありますのでご注意下さい

mogmogtae
質問者

補足

ご回答ありがとうございます。 何となくイメージがつかめてきましたので、 現在実験中です。 そこで、ひとつ追加質問させて下さい。 <a href="#"~ このシャープ記号は、文字通り"#"なのでしょうか? それとも何か別の物を表しているのでしょうか。

その他の回答 (1)

  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.2

> <a href="#"~ > > このシャープ記号は、文字通り"#"なのでしょうか? > それとも何か別の物を表しているのでしょうか。 文字通りです アンカータグ(<a>)はhref属性があることで文字色が変わりアンダーラインが付き、 カーソルがポインターになるという動作・レンダリングが適用されます それを適用させるために # を入れてあげています href属性のシャープそのものはページ内移動として動作し、 また、href属性がなくてもonclick自体は動作します 他のやり方では <a href="javascript:document.form1.submit();">???</a> でhref属性に直接javascriptを入れたり、 <a onClick="document.form1.submit();" style="text-decoration:underline;color:#00f;cursor:pointer;">???</a> として、href属性のないものにstyleを適用させて、 アンカーっぽく見せる等、やり方は多様です href属性へ直にjavascriptを入れるのは、 リンク部分にカーソルを合わせた際、 ステータスバーにそのままjsの処理が表示されます href="#" はonclickを使用する際に前途動作・レンダリングを適用させ、 尚且つステータスバーに処理を表示させないという一般的な方法です href属性に直js or onclick + href属性#、ここは好みかなと思います (style設定でする方は恐らく少数派でしょう)

mogmogtae
質問者

お礼

>href="#" はonclickを使用する際に前途動作・レンダリングを適用させ、 尚且つステータスバーに処理を表示させないという一般的な方法です  ご回答ありがとうございました。  おかげさまで実現する事が出来ました。

関連するQ&A

  • formでPOSTするのと同じ動作をボタンとjavascriptで実現したいのですが

    <form name="myFORM" method="POST" action="xxx.php"> <input type="text" name="NAME"> <input type="submit" value="送信"> </form> 上記と同じ動作を <button onclick="fpost('tanaka','POST','xxx.php')">送信</button> とjavascriptで実現したいのですが可能でしょうか? 可能でしたらどのようなスクリプトになりますでしょうか? document.myFORM.submit();とかではなく、formタグを全く使わずPOSTしページ遷移したいのですが。 XMLHttpRequestとlocation.replace()とかでできるのでしょうか?? すみませんがよろしくお願い致します。

  • FORM1つでリンク

    いつもお世話になっております。 既にある質問も調べてみたのですが <form name="top" method="post" action="xxx.cgi"> <input type = "hidden" name="data" value="open"> <a href="#" onClick="submit();">オープン</a> <input type = "hidden" name="data" value="close"> <a href="#" onClick="submit();">クローズ</a> </form> FORMを1つで、hrefのリンクみたいにして違う値を 送信したいのですが、上記だと 二つ目のリンクが上手く出来ません。 どなたかお知恵をお貸し下さい

  • リンク風sabmitのformをまとめられますか?

    フォームの送信を、リンク風に表示しているのですが、 複数ある場合、フォームタグをまとめることはできるのでしょうか? 下記にHTMLを記載しております。 <form name="word1" method="POST" action="word.php"> <input type="hidden" name="fruit" value="みかん"> </form> <form name="word2" method="POST" action="word.php"> <input type="hidden" name="fruit" value="りんご"> </form>    ・    ・    ・    ・ <form name="word100" method="POST" action="word.php"> <input type="hidden" name="fruit" value="ぶどう"> </form> <a href="javascript:document.word1.submit()">みかん</a> <a href="javascript:document.word2.submit()">りんご</a>    ・    ・    ・    ・ <a href="javascript:document.word100.submit()">ぶどう</a> と、1つ1つ書いていて長すぎると思っていたのですが まとめることは可能なのでしょうか? また、可能であれば、javascript等の知識が必要となるのでしょうか? ご教授宜しくお願い致します。

  • ボタンを使用せずにpostでデータを送信する。

    お世話になります。 PHP5.0+Mysql5.0を使用してサイトを構築しています。 表示されているのがa.phpでその中のURLをクリックしてb.phpにデータを表示しようとしています。 そのときに、データをPOSTで送信したいのですが、 デザイン的な問題でボタンを使用せずに、リンクをクリックすることでPOSTデータを送信したいと考えています。 過去の質問を参考にしながらここまでは完成できました。 <form name="form1" action="b.php" method="post"> <input type="hidden" name="select" value=""> </form> <a href="" onclick="document.form1.select.value='datadata';document.form1.submit();return false;"> data</a> ただ、ここで問題が・・・ そのb.phpを新しいウインドウで大きさを使用して開きたいのです。 <a href="" onclick="window.open('b.php','','width=400,height=400'); return false;" > 「data1」を送信します</a> こうすれば出来るのはわかったのですが、上記2つを 同時に実行する方法がわかりません。 また、これはこうした方がいいというアドバイスも大変助かります。 よろしくご回答お願いします。

  • POST送信を別ウインドで行いたいのですが・・

    POST送信を別ウインド(タブ)で行いたかったので、 以下のようにしました。 <form action="test.php" name="form1" method="post" target="tar1" onsubmit="window.open('','tar1')"> <input type="hidden" name="test" value="abcdefg"> </form> <a href="" onclick="document.form1.submit();return false">POST送信</a> 右クリック、マウスホイールクリックした場合に、 IE8の場合は新ウインドが開き、FireFoxの場合は新タブで開くようになりました。 この挙動の差については特に問題ありません。 (現在の画面と別画面で行えればいいので) 問題は、リンクを右クリックしての「新しいタブで開く」「新しいウインドで開く」を選んだ場合です。 この場合では、「<a href="" 」の部分をリンクとして認識してしまうようで、 同じページが表示されてしまいます。 かといって、href="test.php"としておいてもPOSTデータが無しになってしまいます。 POST送信を別ウインドで行わせたい場合に、以下操作を満たせるやり方はありますでしょうか。 ・リンクを右クリック、マウスホイールクリック ・リンクを右クリックしての「新しいタブで開く」「新しいウインドで開く」選択

  • formによるパラメータ送信がうまくいきません

    こんばんは。 HTML初心者です。 formによるパラメータを送信しようと考えているのですが、 送信方法によってパラメータが異なってしまい、困っています・・・。 以下のようなformを使って、パラメータをpostしています。 <form name="form1" action="http://xxx/xxx/xxx" method="post"> <input type="text" name="text1"> <input type="submit" value="sousin" name="submit1"> </form> 送信してみたところ、送信方法によって、送るパラメータに差異があることに気が付きました。 ************************************************** 1.テキストに文字列を入れて、送信ボタン(sousin)を押す。 ->リクエストパラメータが、submit1=sousin と text1=文字列 になる。 2.テキストに文字を入れて、フォーカスがテキストにある状態で、Enterを押す。 -> リクエストパラメータが、text1=文字列 だけになる。 ************************************************** 1.と2.どちらの場合でも、 submit1=sousin と text1=文字列 を送りたいと考えています。 クエリストリングは使いたくないので、 onclickをつけてみたり、JavaScriptで少し考えてみましたが、 どうしてもうまくいきませんでした・・・。 2.のように、Enterを押したときでも、 submit1=sousinを送るようにするのはどうしたらよいでしょうか?? 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • POST時に要素を削除してからPOST

    もしご存じの方がおられましたら、何でも結構ですのでアドバイスいただけましたら助かります。 今、formのPOSTをしたときに、ある要素を削除してからPOST処理が走るようにしたいと思っています。 jQueryを利用して、以下のようにしていますが、 要素を削除したあと、POST処理が止まってしまって、画面がリロードされません。 これはなぜでしょうか?? <form method="POST" action="index.php"> <input type="submit" name="submit" value="送信" onclick="jQuery('#target').remove();"> </form> ちなみに、jQueryのappendTo()といったメソッドならPOST処理は継続されました。 removeやdetachはだめみたいです。 こういった場合どのようにしたら良いのでしょうか。。 よろしくお願いします。

  • リンクでPOST送信

    http://www.kojikoji.net/pso/javascript.asp こちらにその方法がのっていて、 Windows IE 6.0 Windows Opera 7.13 では動作を確認しました。ですが、 Windwos Netscape 7.1 で動作しません。Netscapeにも対応した書き方で、<a href=...>を用いてPOST送信することは可能でしょうか? *****以下引用*********************************** リンクやボタンを使って「xxx.asp」へPOST送信 <html> <head> <script language="JavaScript"> <!-- function wPost(a1,a2){ document.form1.text1.value=a1; document.form1.text2.value=a2; document.form1.action = "xxx.asp"; document.form1.submit(); } //--> </script> </head> <body> <a href="javascript:wPost("text1","text2")">送信</a> <input type="button" OnClick="wPost('text3','text4')" value="送信"> <form name="form1" method="post" action="err.html"> <input type="hidden" name="text1"> <input type="hidden" name="text2"> </form> </body> </html>

  • どうしてもAタグでsubmitしたい

    <form action="ccenter/index.php?form=2" name="ccenter" method="post" onsubmit="return xoopsFormValidate_ccenter();"> お世話になります。このフォームの送信ボタンをAタグで行うことは可能でしょうか。 xoopsFormValidate_ccenter();は入力チェックです。 当方で, <a href="" onclick="submit()">Submit</a> とし.ても動きません。 初歩的で申し訳ございませんが、よろしくお願いいたします。

  • POST送信かGET送信か

       ------------------------------------------ <SCRIPT language="JavaScript"><!-- function GoPage(url, id){ document.form.action = url; document.form.id.value = id; document.form.submit(true) } // --></script> <!--中略--> <input type="submit" name="submit" value="送信" onClick="javascript:GoPage("a.php", "1")">    ------------------------------------------    上記のような処理を書いた場合、 遷移先である a.php で id(値:1)を取得する時は POSTで受け取るのですか?それともGETでしょうか?   

専門家に質問してみよう