HTMLでフォームのプルダウンメニューを使って選択したメニューから別のURLにジャンプする方法を教えてください。一応自分でも以下の様に試してみたのですが、何回ページ2に行こうとしてもページ1に行ってしまいます。どうしたらそれぞれのページに行けるでしょうか。勝手ながらjavaを使わずにお願いします。<P><form action=”http://〜page1.html” method=POST><form action=”http://〜page2.html” method=POST><select name=page><option value=”1”>ページ1</option><option value=”2”>ページ2</option></select><input type=submit value=”ページ移動”></form>

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答12件)

id:inokuni No.1

回答回数1343ベストアンサー獲得回数21

http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/

About the HTML 4.01 specification Japanese translation

JavaScript を用いなければ、難しいと思います。

CGI 等が使えるのであれば、

「page」の名前で受けた値 1 or 2 に応じて、

Location ヘッダなどを用いて、

目的のページへジャンプさせることも可能かと思いますが・・・。

id:akebon

すいませんがそんな技術ありません。

よく他の人のHPを見ているとトップページからプルダウンメニューで複数の選択肢の中から選んで他のURLへジャンプするような感じのものを作りたいのです。

上の構文でフォーム自体は作ることはできるんですが、ジャンプができないので以下の構文が間違っていると思うのです。

この文を選択肢の分だけ作る作ると思うのですがどのHTML講座のサイトをみてもこの文は1つしか書いてないのでどうしていいのか分からないのです。

2003/06/07 13:51:38
id:kazzy No.2

回答回数15ベストアンサー獲得回数0

根本的にformの使い方が間違っています。

まず、HTMLファイルにPOSTメソッドは使えません。通常はエラーとなります。

formではactionに一つのURLを指定します。2つ並べるのは好ましくありません。この場合閉じ忘れとなります。

JavaScriptを使わないのであればCGIを使う必要があります。CGI内部で渡された値が1か2かを判断して何らかの方法でブラウザにデータを返します。

CGIが使えない環境であればJavaを利用するしかありませんが、この場合普通にリンクを貼った方が使いやすいと思います。

id:akebon

そのCGIは配布していますか?

それとも自作できるような簡単なものなのでしょうか…

2003/06/07 14:19:58
id:mady No.3

回答回数86ベストアンサー獲得回数0

まず「Javaを使わずに」と書いてありますがこれは

「JavaScript」のことでしょうか?

JavaとJavaScriptは根本的にまったく異なりますが、

おそらくJavaScriptのことだと思うのでそれを前提に書きます。

結論から言うと、JavaScriptを使用せずにあなたの希望する動きを実現することは不可能です。

そもそもformタグの入れ子はhtml記述仕様上禁止されています。入れ子にした場合、1つ目のformを使うか2つ目のformを使うか、それともまったく認識しなくなるかは保証されません。

またselectの値はhttpのリクエストの引数として

page=1という文字列が送信されるだけで、それを解釈する仕組みを作らない以上無意味です。で、それにはサーバーサイドプログラミングが必要になります。

form1つでリクエストの送信先を変えるには、action値を変化させる必要がありますが、JavaScriptを使用せずに実現することはことは不可能です

submit時に、JavaScriptを使用してaction値を変化させるか、

サーバーサイドプログラミングをするかどちらかにしたほうがいいでしょう。

id:akebon

そうですか…

2003/06/07 14:21:06
id:nao-t No.4

回答回数51ベストアンサー獲得回数0

http://www.openspc2.org/JavaScript/

一撃必殺JavaScript日本語リファレンス

一つのページにFORMを用いる場合は、FORMに名前をつける必要があります。

例)<form name=”f1” action=”***” method=”post”>***

</form>

または、JavaScriptを用いて制御するのも一つの方法です。

id:akebon

すいません。よくわかりません…

今回のHTMLの解決法となるのでしょうか?

2003/06/07 14:25:27
id:tsuntsun No.5

回答回数66ベストアンサー獲得回数0

javaを使わないとダメかと思います

javaが使いたくないんですか?それともわからないからですか?

簡単なサンプルを書いておきます

<script language=”JavaScript”>

function MM_jumpMenu(targ,selObj,restore){ //v3.0

eval(targ+”.location=’”+selObj.options[selObj.selectedIndex].value+”’”);

if (restore) selObj.selectedIndex=0;

}

</script>

<form name=”form1” method=”post” action=””>

<select name=”select” onChange=”MM_jumpMenu(’parent’,this,0)”>

<option value=”

〜”>page1</option>

<option value=”

〜”>page2</option>

<option value=”

〜”>page3</option>

</select>

</form>

簡単に書きましたので、あとはそれぞれ調べてみてください

id:mady No.6

回答回数86ベストアンサー獲得回数0

失礼ながらよこやりを入れさせていただきます。

単にformを使用する場合、name属性は不要です。

nameをつけても挙動は一切変化しないため解決に至る事はありえません。

name属性はスタイルシートやスクリプトから参照するためにつけます。JavaScriptもスタイルシートも特に使わないのであれば必要ありません。

id:GEAR No.7

回答回数33ベストアンサー獲得回数0

提示されたHTMLがまったくもって理解できないんですが。

JavaScriptを使わないのであれば、inokuniさんの言うCGIスクリプトを鳩丸さんが配布しています。(1つ目?のURL)

使い方の例については2つ目?のURLを見てください。ソースを見ればわかります。

http://www.ne.jp/asahi/minazuki/bakera/html/opinion/zannen1

鳩丸ご意見番 - 残念な思いを致しました(1) - 謎のSELECT要素には残念な思いを致しました。

id:akebon

ありがとうございます。

2003/06/10 17:45:48
id:chorobe No.8

回答回数64ベストアンサー獲得回数0

HTMLだけでは無理かと思います。

URLにJAVASCRIPTを使った例がそのまま載っていますのでそれをコピペして使ってみるのはどうですか?

id:akebon

そうですね。

JAVASCRIPTの勉強のお奨めのサイト教えてください。

2003/06/10 17:47:42
id:pahoo No.9

回答回数5960ベストアンサー獲得回数633

http://www.zdnet.co.jp/help/tips/html/h0045.html

競争力向上にITを活用するすべての企業へ - ZDNet Japan

うーん、やはりJavaScriptを使わなければ無理なような気がします。

このサイトで紹介されているのが一番単純な方法なので、試してみてはいかがでしょうか。

id:akebon

JavaScriptを勉強します。

いいサイトがあれば教えてください。

2003/06/10 17:48:40
id:shinchan No.10

回答回数6ベストアンサー獲得回数0

http://d.hatena.ne.jp/shinchan/20030607

2003-06-07 - shinchanの日記

勉強がてら自分でCGIスクリプトを書いてみました。

CGIの設置のしかたは「とほほのCGI入門」を見ましょう。

少し勉強すればどこをいじればいいかわかると思います。

id:akebon

ありがとうございます。

参考にします。

2003/06/10 17:50:34
id:pmakino No.11

回答回数358ベストアンサー獲得回数30

mady さんの仰るとおり、JavaScript か CGI を使わずに希望の動作をさせることは不可能です。

JavaScript を使うとしたら、以下のようになります。

<form name=”jumpform”>

<select name=”jumpmenu”>

<option value=”http://〜page1.html”>ページ1</option>

<option value=”http://〜page2.html”>ページ2</option>

</select>

<input type=”button” value=”移動” onclick=”location.href=document.jumpForm.jumpMenu.options[document.jumpform.jumpmenu.selectedIndex].value”>

</form>

id:akebon

ありがとうございます。

あとJavaScriptの学べるよいサイトがあれば教えてください。

2003/06/10 17:51:45
id:desu No.12

回答回数1ベストアンサー獲得回数0

ポイント160pt

http://www.hatena.ne.jp/1054958611#

HTMLでフォームのプルダウンメニューを使って選択したメニューから別のURLにジャンプする方法を教えてください。一応自分でも以下の様に試してみたのですが、何回ページ2.. - 人力検索はてな

URLはダミーです。

わかりましたか?

id:akebon

わかりました。

ありがとうございます。

2003/06/13 13:32:49
  • id:mulukhiyya
    意味のある回答をしていない人に全ポイントを?

    >12.回答者:desu (1) 2003/06/13 13:31:25 この回答で満足! 160ポイント
    >http://www.hatena.ne.jp/1054958611#
    >はてな
    >URLはダミーです。
    >わかりましたか?
    >└ 質問者のコメント akebon (0) 2003/06/13 13:32:49
    > わかりました。
    >ありがとうございます。

    なぜでしょうか?
  • id:polyamid
    勝手な想像ですが

    質問者と回答者は、知り合い又は同一人物ではないでしょうか。
    二つのユーザー名でポイントをやりとりさせれば、質問にかかるコストは
    回答の数に関わらず20ポイントになると考えられます。
    http://www.hatena.ne.jp/1054958611#
  • id:reikon
    Re:意味のある回答をしていない人に全ポイントを?

    はてなスタッフの近藤(れ)です。

    ご指摘いただきました質問につきましては、同一ユーザー様によるポイント受け渡しであると判断致しましたので、既に当該ユーザー様に連絡をお取りしております。

    ご指摘いただき、ありがとうございました。
  • id:mulukhiyya
    Re:勝手な想像ですが

    私もそれを心配していました。

    そもそもこの人の質問態度はどうも奇妙でした。
    というのも、Perl→CGI、Java→JavaScriptという間違え方は、いかにもわざとらしいと思うのです。
    それで注目していたのですが、どうやら案の定だったようですね。
  • id:mulukhiyya
    Re(2):勝手な想像ですが

    >というのも、Perl→CGI、Java→JavaScriptという間違え方は、いかにもわざとらしいと思うのです。

    すみません、JavaScript→Java でした
  • id:earopenmind
    Re(2):意味のある回答をしていない人に全ポイントを?

    これも残ってますね。
    せこいというか...
    http://www.hatena.ne.jp/1055902424

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません