• 締切済み

データを送るのと値を渡すのを同時に行いたい

a hrefでデータを送るのと値を渡すのを同時に行いたいのですがどうすればいいのでしょうか。 下記のa hrefでのデータを送りに<a href="http://www.localhost/hoge.php?name=papa&age=30"> のような固定された値を受け渡したいのですがどのようにすてばいいのでしょうか <form name="form1" action="test" method="post"> <input type="hidden" name="str" value="aaa"> <A HREF="javaScript:form1.submit();">ここの書き方がわかりません</A> <form>

みんなの回答

  • taseki
  • ベストアンサー率66% (155/233)
回答No.4

> 一つ質問なのですが何故href="javascript:~" はあまり良くないのでしょうか教えて貰えないでしょうか 主な理由としては2つです。 ●HTMLなどWeb関係の仕様を決めている本家 W3C(http://www.w3.org/)が、あまり使わないように勧告しています。また、いずれ廃止される方向だそうです。その理由は、ユーザーがスクリプトを使っていない場合にブラウザがリンクを作ることが出来ないからです。 ●もう一つの理由はブラウザの挙動です。ご存知のようにA アンカータグは、主にクリックして「移動」するという動作をしますが、その移動先に(半ば強引に)スクリプトを割り当てたのがhref="javascript:~" です。 移動のときブラウザはページをリセットします。一番わかりやすい例としては、ページ内のGIFアニメーションなどがAタグをクリックした瞬間に止まる、というのがあります。 ブラウザは「移動」だと思っているので、このようにページをリセットしますが、実際には移動しないでスクリプトを実行するだけですよね。 で、onclick="~" の最後に return false と書いてあるのに注目してください。これは、その挙動、つまり「Aタグをクリックした」ということ自体をキャンセルしています。言い換えれば、必要なスクリプトを動かした後に、「クリックしていない」ことにしてしまうわけです。これで「移動」が起きません。 もちろん今回の例では大した影響はないと思いますが、基本的には上記を踏まえてonclickを使用したほうがいいです。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.3

下のソース、一部を質問内容からコピーしましたが、一部のタグが間違ってますね。 正しくは以下のとおり(form閉じタグ)。 ----------------------------- <form name="form1" action="test" method="post"> <input type="hidden" name="str" value=""> </form> <a href="#" onclick="document.form1.str.value='data1';document.form1.submit();return false;">データ「data1」を送信します</a><br> <a href="#" onclick="document.form1.str.value='data2';document.form1.submit();return false;">データ「data2」を送信します</a><br> <a href="#" onclick="document.form1.str.value='data3';document.form1.submit();return false;">データ「data3」を送信します</a><br> -----------------------------

  • taseki
  • ベストアンサー率66% (155/233)
回答No.2

ご質問の「データを送る」と「値を渡す」は同じ意味と思われ、ちょっとご質問の意味がよく解らなかったのですが、以下のように推測しましたが良いでしょうか。 ●ページ上にフォームがあり、あるAタグをクリックすると、自動的にフォームに値を設定して送信する、というJavaScriptを作りたい。 上記でよければ、以下のような感じです。 ----------------------------- <form name="form1" action="test" method="post"> <input type="hidden" name="str" value=""> <form> <a href="#" onclick="document.form1.str.value='data1';document.form1.submit();return false;">データ「data1」を送信します</a><br> <a href="#" onclick="document.form1.str.value='data2';document.form1.submit();return false;">データ「data2」を送信します</a><br> <a href="#" onclick="document.form1.str.value='data3';document.form1.submit();return false;">データ「data3」を送信します</a><br> ----------------------------- ※href="javascript:~" はあまり良くない

basi999
質問者

お礼

回答ありがとうございます。 一つ質問なのですが何故href="javascript:~" はあまり良くないのでしょうか教えて貰えないでしょうか

noname#35109
noname#35109
回答No.1

何か参考になりますか↓? ----------テキストエディタにコピペ&保存------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>検索窓の例</title> </head> <body> <p><a href="http://help.goo.ne.jp/door/001_a.html">goo検索窓</a></p> <p>上記ページにあるタグの無駄を省くと</p> <form action="http://search.goo.ne.jp/web.jsp" name="query1" target="goo"> <input type="text" name="MT" value="" size="20"> <input type="submit" value="検索" name="web"> <input type="hidden" name="IE" value="sjis"> </form> <p>ボタンを,文字に変えると</p> <form action="http://search.goo.ne.jp/web.jsp" name="query2" target="goo"> <input type="text" name="MT" value="" size="20"> <a href="javaScript:query2.submit();">検索</a> <input type="hidden" name="IE" value="sjis"> </form> <p>となります。</p> </body> </html> ---------------------------------------------

関連するQ&A

  • 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>

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

  • chromeでフォームの値が取得できない

    PHPでフォームに入力された値を取得して画面に表示させる処理において、 Javascriptでフォームの値を変更した場合、chromeだと変更後の値が 取得できません。 例えば、 <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="111"> <input type="hidden" name="data1" value="AAA"> <input type="submit" value="送信"> </form> というようなフォームがあったとして、Javascriptで値を <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="222"> <input type="hidden" name="data1" value="BBB"> <input type="submit" value="送信"> </form> と、変更しても送信ボタンを押して取得できる値は、上の方の値になります。 IEやFireFoxでは問題なく変更後の値が取得できるのですが、chromeだと 取得できません。 なにか解決方法があるのか、それともchromeの仕様なのかご教示いただければと 思います。 どうかよろしくお願いいたします。

  • 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
  • postでのデータの受け渡し

    呼出し元.htmlから受け渡し先.aspxへのデータを受け渡すのに、formを使用してPOSTで受け渡したいのですが、 呼出し元.htmlは *form部分 <form name="frmYobidasi" target="_blank" runat="server"> <input type=hidden name="VAL" value="123123"> <a href="javascript:fncYobidasi(document.frmYobidasi)">受け渡し先へ</a> </form> *script部分 <script language="javascript"> function fncYobidasi(form) { form.action='http://localhost/aaa/UkewatasiSaki.aspx'; form.method='post'; form.submit(); } </script> となっていて、 UkewatasiSaki.aspxは <%=Request.form("VAL")%> としているのですが、 Request.formの中はからっぽです。 なにが問題なのでしょうか?? ご教授お願いいたします。

  • documentにてデータ送信

    すいません、初めてまだ1カ月なので不慣れで分からない場所があります。 アドバイス宜しくお願い致します。 <form name="form1" action="test" method="post"> <input type="hidden" name="str" value="<%=List[i].Code() %>"></form> <a href="#" onclick="document.form1.str.value='data1';document.form1.submit();return false;"><%=List[i].Code()%></a> こんな感じでアンダーバーが出ているリンク文字を押すとデータと一緒に画面移動をしたいのですが、移動はしてもデータが送られてきません・・・ 2、戻るボタンを作成したのですが、更新や削除をする画面では戻るを押すとbackにて1画面戻るので入力前の画面に戻ります、なんとか画面を呼び出した画面に戻りたいのですが、何かいい方法ありますか??

    • ベストアンサー
    • Java
  • submitではなくbuttonで送信

    事情があり、submitではなくbuttonでフォームのデータを送信したいのですが、以下のように書くとbuttonでは4567が送信されません。 <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="submit" name="bbb" value="4567"> </form> ↓ <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="button" name="bbb" value="4567" onclick="submit();" > </form> submitと同じように、bbbのデータ4567も送信するにはどのように書けばよいのでしょうか? 宜しくお願いします。

  • POSTで<a hrefを送る方法について

    POSTで <a href=sample.cgi?md=aa&tx=zz~>hoge</a> <a href=sample.cgi?md=bb&tx=yy~>hoge2</a> <a href=sample.cgi?md=cc&tx=xx~>hoge3</a> <a href=sample.cgi?md=dd&tx=ww~>hoge4</a> を送る方法でjavascriptとの組み合わせで出来るのかな? と思い検索したら <form action="./sample.cgi" method="POST" name="post"> <input type="hidden" name="md" value="aa"> <input type="hidden" name="tx" value="zz">           : <a href='#' onClick="document.post.submit();return false">hoge</a> <form action="./sample.cgi" method="POST" name="post2"> <input type="hidden" name="md" value="bb"> <input type="hidden" name="tx" value="yy">           : <a href='#' onClick="document.post2.submit();return false">hoge2</a> このような手法が見つかりました これだと行数が多くなり、なんとなくすっきりしません どなたかいい解決方法を教えてください よろしくお願いします

    • ベストアンサー
    • HTML
  • テキストリンクでデータの受け渡し。

    PHPの勉強中で、参考書を見ながらショッピングサイトを作成しています。 カテゴリ別に表示したいと思い、データベースに商品の登録をし、 WEBページでカテゴリでの絞込みをしたいのですがうまくいきません。 以下のような、ラジオボタ形式では上手く動きました。 <form method="post" action="hoge.php" enctype="multipart/form-data"> 商品カテゴリーを選択してください。<br> <label><input type="radio" name="category" value="0">0</label> <label><input type="radio" name="category" value="1">1</label> <label><input type="radio" name="category" value="2">2</label> <input type="submit" value="確認"> </form> ラジオボタンでも、確認ボタンを押さなくても、 テキストをクリックすれば受け渡し先のページに飛ぶ形式ならいいのですが。。。 以下のテキストリンクの場合だと、一番下の値しか飛んでくれず、困っています。 <form name="category" action="hoge.php" method="post"> <input type="hidden" name="category" value="1"> <input type="hidden" name="category" value="2"> <a href="javascript:void(0)" onclick="document.category.value='1'; document.category.submit(); return false;">1</a> <a href="javascript:void(0)" onclick="document.category.value='2'; document.category.submit(); return false;">2</a> </form> どなたか詳しい方、ご回答をお願いします。

    • ベストアンサー
    • PHP
  • リンク風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等の知識が必要となるのでしょうか? ご教授宜しくお願い致します。

専門家に質問してみよう