こんにちは。

ひとつのテキストエリアから、ボタンの違いによって送り先を変更することは可能なのでしょうか?

具体的にやりたいことは、「検索デスク」と言うサイトのように、入力フォームは同一でもボタンの違いによって送り先が変わっています。
やりたいことは「検索デスク」さんと同一なのですが、ソースを拝見しても良くわかりませんでした。

大手のサーチエンジンの検索窓を羅列することはできるのですが、もう少しスマートにしたいです。(^^ゞ

わたしのスキルは質問ID195803のとおり、JavaScriptを良く理解していないようです。

よろしくおねがいします。<(__)>

A 回答 (2件)

検索に必要なフォームの内容は、検索サイトごとに異なります。


ですので、検索サイトごとにフォームを用意して、押されたボタンによって使うフォームを切り替えるとよいでしょう。
必要なフォームの内容は、検索サイトごとに用意されていますので、それを利用します。(参考URLを参照)
ただし、そのままでは検索窓などが表示されてしまうので、type を hidden にして下さい。(スタイルシートの display:none を使うと、NNで動作しないようです。)
下記に、IE5.5 / NN4.7 / NN6.2 動作確認済みのソースを記載します。

■HEAD内
<SCRIPT language="JavaScript"><!--
function search(btn) {
  with (window.document) {
    forms[btn.name][ forms[btn.name].alias.value ].value = btn.form.word.value;
    forms[btn.name].submit();
  }
}
//--></SCRIPT>

■BODY内
<!-- 共通入力フォーム -->
 <FORM>
  <INPUT type="text" name="word">
  <INPUT type="button" name="google" value="Google 検索" onClick="search(this)">
  <INPUT type="button" name="yahoo" value="Yahoo! 検索" onClick="search(this)">
 </FORM>
<!-- Google フォーム -->
 <FORM name="google" action="http://www.google.com/search" target="_blank">
  <INPUT type="hidden" name="alias" value="q">
  <INPUT type="hidden" name="q" value="">
  <INPUT type="hidden" name="hl" value="ja">
 </FORM>
<!-- Yahoo! フォーム -->
 <FORM name="yahoo" action="http://search.yahoo.co.jp/bin/search" target="_blank">
  <INPUT type="hidden" name="alias" value="p">
  <INPUT type="hidden" NAME="p" value="">
 </FORM>

# 各検索サイト用フォーム内にある alias という名の hidden オブジェクトは、スクリプトを簡単にするための工夫です。
# 検索サイトを追加する時は、検索ボタンの name と、サイト用 FORM の name を、同じ名前にして下さい。

参考URL:http://www.google.co.jp/intl/ja/searchcode.html, …

この回答への補足

ありがとうございます(T_T)
感動のあまり涙が出そうです。(笑)

サンプルをそのまま使用させていただいたところ、まさに求めていたものが再現できそうです。
コレを元に他の検索エンジンも自分で加えてみたいと思います。

この事で色々検索していたのですが見つけることが出来ず、困っておりましたのでとても助かりました。

解決しましたが、実際に作成してみますので1日ほど、質問は締め切らずにおきます。

重ねて、ありがとうございました。

補足日時:2002/02/22 16:22
    • good
    • 0
この回答へのお礼

スクリプトを参考にして、思い通りに出来ました。
どうも、ありがとうございました。

お礼日時:2002/02/24 11:47

<HTML>


<HEAD>
<Script Language="JavaScript">
function form_submit2()
{
document.submit_form.action = "test2.html";
document.submit_form.submit();
}
</Script>
</HEAD>
<BODY>

<form action = "test1.html" method = "post" name = "submit_form">
<input type = "text" name = "hoge"><br>

<!-- test1 へ遷移 -->
<input type = submit><br>
<!-- test2 へ遷移 -->
<input type = button onClick="form_submit2()"><br>

</form>

</BODY>
</HTML>

こんな感じでしょうか?

内容としては下のボタンを押下したときにJavaScriptのform_submit2という関数を呼び出します。
その関数の中身でFormのSubmit先を変更してその後に強制的にSubmitさせます。

この回答への補足

早速の回答ありがとうございます。

送り先のサーチエンジンに入力キーワードを検索させたいのですが、Submitさせるだけで可能でしょうか?

ちょっと試してみましたが、できませんでした。
(test.htmlをhttp://www.google.com/searchに変更してみました)
私の理解が間違っているのでしょうか?

補足日時:2002/02/22 12:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ