• ベストアンサー

サブミットの違い

jspに <form action="XXaction" method="post"> <a href="XXaction" onclick="setData()">○○△</a> <input type="submit" value="○○" onclick="setData()"> </form> のように記述してます。 (実際はonclickのjavascriptも実装してます) ボタンを押すとpostとしてサブミットされるのに、 リンクをクリックするとgetでサブミットされます。 1.なぜgetになるのでしょうか? 2.どうしたらpostで飛ばせるでしょううか?

  • Java
  • 回答数6
  • ありがとう数4

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

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.6

<Script Language = "JavaSpcript"> function setData(){     document.form.submit(); } </Script> <form name = "form" action = "XXaction" method = "post"> <a href = "JavaScript:setData()"> </form> これでどうでしょうか。 windows.document.フォーム.submit ですが、「form」にname属性でnameを付けてやらなければ指定できませんのであしからず。。。 ちなみに、actionの「XXaction」にとびますので。

ratsbane
質問者

お礼

alertは出るんですが、submitされないみたいです。 alertをsubmitの後に書いても出ました。 なぜsubmitされないのでしょうか・・・

ratsbane
質問者

補足

それを実は実装してたんですけど。 微妙に違うかもしれないので、もう一度確認します。 <form name="frm" action="XXAction" method="post"> <a href="JavaScript:setData()">○○</a> </form> <script language="Javascript"> function setData(){ alert("OK"); document.frm.submit(); } </script> みたいな実装です。

その他の回答 (5)

  • kurus
  • ベストアンサー率52% (12/23)
回答No.5

JavaScriptが動いているということですが、 JavaScriptのエラーはステータスバーに表示されますか? その場合、submitしている文に問題があります。

ratsbane
質問者

お礼

すいませんでした。 皆様ありがとうございました。 全くもって、私のミスでした。 document.frm.submit; となってました。 document.frm.submit(); にしました。 お時間とらせてしまい、誠に申し訳ありませんでした。

ratsbane
質問者

補足

エラーは出てません。

noname#19197
noname#19197
回答No.4

setDataは、その別プロジェクトとまったく同じjavascriptなのですか?

ratsbane
質問者

補足

いいえ。 同じように記述してるつもりなだけです。。 strutsを使ってる方 <html:link href="#" onclick="サブミットするjavascript">○○○ </html:link> 今作ってるもの <a href="JavaScript:サブミットするjavascript">○○○</a> という感じです。 変換されたhtmlの違いはhref="#"かどうかくらいだと思ってました。

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.3

<a href ="JavaScript:setData()"> と。<a href>タグの中からJavaScriptを動作させたい場合はこうなります。

ratsbane
質問者

補足

やってみましたが、javascriptは動きますが、サブミットされてないようです。 javascriptでalertは出るので、動いてる確認は取れてます。 window.document.フォーム.submit(); とやってるんですけどね・・・。

noname#19197
noname#19197
回答No.2

1.Aタグの遷移は必ずGETです。 2.javascriptでformをsubmitします。 window.forms[0].submit();

ratsbane
質問者

補足

>Aタグの遷移は必ずGETです。 ということは、別プロジェクトのストラッツを使ってるjspはなぜpostになるのか疑問ですが、ありがとうございます。 submitしてますが、どうにも動いてくれませんです。

  • asahina02
  • ベストアンサー率47% (95/202)
回答No.1

JSPはあんまり関係ない気もしますが・・ 1.AタグはFORM部品ではないので、FORMタグ内にあっても関係ありません。hrefへ遷移するだけ。 2.Aタグのhrefは削除   onclick内でFORMをsubmitさせるようする

ratsbane
質問者

お礼

jspに関係あると思ったのは、strutsを使ってる別プロジェクトのjspでは <a href="#" onclick="サブミットするjavascript"> で、postで動作してくれてたからです。 Aタグのhrefを削除ということは <a onclick="サブミットするjavascript"> リンク文字 </a> のようにすることでしょうか? これだと、jspを開いたときにリンク文字にカーソルをあてても指型にかわらず(下線がない)、onclickが発生してくれませんでした。さきほども試しましたがダメでした。

関連するQ&A

  • PHPとJavaScriptで...

    PHPで以下のようなリンクを生成し、 <form name="hoge" method="post"> <input type="hidden" name="hogehoge"> </form> <a href="javascript:void(0)" onClick="submit('0')">あ</a> <a href="javascript:void(0)" onClick="submit('1')">い</a> <a href="javascript:void(0)" onClick="submit('2')">う</a> <a href="javascript:void(0)" onClick="submit('3')">え</a> <a href="javascript:void(0)" onClick="submit('4')">お</a> POSTで受け取ったデータを再びPHPで使用したいのですが、 (同一ページ内で) 色々調べてみたのですが、いまいちわかりません。 JavaScriptの部分をどのようにしたらよいか、また根本的に間違っていたらどのように変えればよいか、 教えてください。 m(_ _)m

    • ベストアンサー
    • PHP
  • iframe内のformをサブミットする方法について

    標題の件について、いろいろ試しているのですが、iframe内のフォームをサブミットできません。わかる方いましたら教えていただけないでしょうか。以下に試しているソースを記述します。宜しくお願い致します。 ○ボタン押下時、ifrのform1をサブミットさせる。 <body> <iframe name="ifr" id="ifr" style="display:none"> <form id="form1" name="form1" id="form1" method="post" action="http://192.168..."> </form> </iframe> <input type="button" onclick="parent.ifr.form1.submit; " value="送信"/> </body>

  • リンクをクリックした時に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
  • submit関数の使い方

    javascript部分 function sendform(formname){ document.formname.submit(); } html部分 <form action="test.html" method="post" name="form1"> <input type="text" name="textvalue" value="1"> </form> <a href="javascript:void(0)" onclick="sendform('form1'); return false;">click1</a> <form action="test.html" method="post" name="form2"> <input type="text" name="textvalue" value="2"> </form> <a href="javascript:void(0)" onclick="sendform('form2'); return false;">click2</a> 今は、上記のように書いています。引数でフォーム名を渡し、その値によって送信フォームを変えたいのですがうまくいきません。if文を使って if(formmei=="form1"){ document.form1.submit(); }else if(formmei=="form1"){ document.form2.submit(); } という方法も考えたのですが、フォーム名だけ変えることができないかと考えています。 よろしくお願いします。

  • リンク風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とGETを利用しようと

    サブミットのときにはgomiのデータが$_POST['gomi']にセットされキャンセルのときにはgomiのデータが$_GET['gomi']にセットされるようにしたいのですが x.html: <form action="x.php" method="post"> <input type="text" name="gomi"/> <input type="submit" value="set"/> </form> <p><a href="x.php">cancel</a></p> ではもちろんcancelをクリックしても$_GET['gomi']にgomiのデータがセットされません どうしたらできるでしょうか?

    • ベストアンサー
    • PHP
  • onclick→次ページでサーブレットDB処理表示

    http://okwave.jp/qa/q8302602.htmlの質問の続きとなるのですが、 JavaScriptからサーブレットのURLにsubmitするコードですが、 以下のように2つ書いてみましたが、合っていますでしょうか? そして次に何を書けばいいでしょうか?  function submit_func() { // フォームオブジェクトに対して値をサブミットを実行する form2.submit(); } <body> <form name="form2" action="/test/sample.do" method="POST"> <p><a href="javascript:form2.submit()">リンク直接</a></p> <p><a href="javascript:submit_func()">リンク関数</a></p> </form>

  • 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のリンクみたいにして違う値を 送信したいのですが、上記だと 二つ目のリンクが上手く出来ません。 どなたかお知恵をお貸し下さい

  • 同じformタグの中にあるボタンで別々のページに遷移したい(ブラウザ依存を考慮)

    はじめまして。 現在、ショッピングサイト構築の勉強をしています。その中で、わからない点がありましたので、皆様に教えて頂ければ幸いです。 【したいこと】 現在書いているコードは以下の通りです。 <html> <head> </head> <body> <form method="post" action="ok.jsp"> <input type="text" name="A"> <input type="submit" value="B"> <input type="submit" value="C"> </form> </body> </html> やりたいことは、 「Cが押された場合は、AとCの値をok.jspに送信」 「Bが押された場合は、Bの値のみをng.jspに送信」 できるようにすることです。 ちなみに、画面レイアウトの関係で、A,B,Cの順番は変えれません。 JavaScriptを使用して <略> <form method="post" action="ok.jsp"> <input type="text" name="A"> <input type="submit" value="B" onClick="location='ng.jsp';return false"> <input type="submit" value="C"> </form> のように記述すると、JavaScriptを許可している場合は実現できました。ただ、JavaScript未対応(拒否)の場合にも実現できる方法がわかりません。このままの記述だと、未対応の場合はok.jspに遷移してしまいます。 何か良い方法をご存知の方がいらっしゃいましたら、是非教えてください。よろしくお願いします。

  • jspからServletにデータを送るには?

    javaを使って開発をしているのですが、 jspからServletにデータを送るのってform型のsubmitでしかできないですか? <a href="~">で行うことは無理でしょうか? ちなみに、form型だと以下のようにしています <form method="post" action ="hogeServlet" > <input type="hidden" name="id" value =<%=hoge.getid() %>> <input type="submit" id="button1" value="ほげ"> </form>

専門家に質問してみよう