ホーム > HTMLに役立つヒント> 全文検索のヒット率向上 / msearch導入記 > m_andor.cgi> msearch詳細条件検索
※このページではJAVAscriptを使用しています。ブラウザの設定でJAVAscriptがOFFになっていると選択入力機能が使えません。
▲選択入力▼
だいたいこんな感じで用は足りるんじゃないでしょうか。
選択入力、範囲指定の部分を必要に応じて変更すればそのまま使えるはずです。
●隠しフィールド
ソースを見るとわかりますが、隠しフィールドが仕込んであります。 <input name="query" type="hidden" size="60" value=""> 「検索」ボタンを押すと、この「query」という隠しフィールドに整形された検索条件式が入力され、msearch.cgiに内容が渡されます。 他にふたつの入力欄がありますが、こちらは上が「query1」、下が「query2」という名前になっていて、これもmsearchに渡されますが、msearchは隠しフィールドの「query」の内容しか受け取りません。
ソースを見るとわかりますが、隠しフィールドが仕込んであります。
<input name="query" type="hidden" size="60" value="">
「検索」ボタンを押すと、この「query」という隠しフィールドに整形された検索条件式が入力され、msearch.cgiに内容が渡されます。
他にふたつの入力欄がありますが、こちらは上が「query1」、下が「query2」という名前になっていて、これもmsearchに渡されますが、msearchは隠しフィールドの「query」の内容しか受け取りません。
●選択入力部分
よく入力されるキーワード、よく間違えられるキーワードなどを、選択で入力できるように考案したものです。 <select onchange="easysearch(1,this.options[this.selectedIndex].value);"> ↑onchangeで選択した項目を入力欄に渡しています。1なら上の欄、2なら下の欄に渡ります。 <option value="" selected>メーカー名↓ ←適当に変更してください。 <option value=" オリンパス">オリンパス ←valueで指定した内容が入力欄に入ります。 … </select> 選択入力が必要なければ、選択入力部分をそっくり削除してください。JAVAscriptに手を加える必要はありません。
よく入力されるキーワード、よく間違えられるキーワードなどを、選択で入力できるように考案したものです。
<select onchange="easysearch(1,this.options[this.selectedIndex].value);"> ↑onchangeで選択した項目を入力欄に渡しています。1なら上の欄、2なら下の欄に渡ります。
<option value="" selected>メーカー名↓ ←適当に変更してください。 <option value=" オリンパス">オリンパス ←valueで指定した内容が入力欄に入ります。 … </select>
選択入力が必要なければ、選択入力部分をそっくり削除してください。JAVAscriptに手を加える必要はありません。
●範囲指定部分
「u:」オプション(urlの検索)や「t:」オプション(titleタグの検索)を指定することを前提にしています。 <select name="category"> ←nameをcategory以外にする場合は、JAVAscriptの方も変更する必要があります。 <option value="" selected>メーカー名↓(タイトルで指定) ←適当に変更してください。 <option value=" t:オリンパス">オリンパス ←valueで指定した内容がsubmit(送信)するときに隠しフィールドに入ります。 … </select> こちらは選択入力と異なり、削除するとJAVAscriptにも変更が必要になります。 範囲指定が必要ない場合、最も簡単なのは<select name="category">〜</select>の部分を次のように変更することです。 <input name="category" type="hidden" size="10" value=""> こうすればJAVAscriptには手を入れる必要がありません。
「u:」オプション(urlの検索)や「t:」オプション(titleタグの検索)を指定することを前提にしています。
<select name="category"> ←nameをcategory以外にする場合は、JAVAscriptの方も変更する必要があります。
<option value="" selected>メーカー名↓(タイトルで指定) ←適当に変更してください。 <option value=" t:オリンパス">オリンパス ←valueで指定した内容がsubmit(送信)するときに隠しフィールドに入ります。 … </select>
こちらは選択入力と異なり、削除するとJAVAscriptにも変更が必要になります。
範囲指定が必要ない場合、最も簡単なのは<select name="category">〜</select>の部分を次のように変更することです。
<input name="category" type="hidden" size="10" value="">
こうすればJAVAscriptには手を入れる必要がありません。
●表示件数部分
表示件数部分は、JAVAscriptのコントロールを受けていませんので、必要なければ削除してください。JAVAscriptに変更は必要ありません。
●JAVAscript部分
headタグの間にJAVAscriptの本体が仕込んであります。割と簡単なスクリプトですので、どんどん変更してください。何をやっているのか、コメントもいれてありますから、おおむねわかると思います。 JAVAscriptは自信がないよ、わかんないよ、という方は、上の解説にしたがって変更すれば、JAVAscriptに手を加える必要はないはずです。
headタグの間にJAVAscriptの本体が仕込んであります。割と簡単なスクリプトですので、どんどん変更してください。何をやっているのか、コメントもいれてありますから、おおむねわかると思います。
JAVAscriptは自信がないよ、わかんないよ、という方は、上の解説にしたがって変更すれば、JAVAscriptに手を加える必要はないはずです。
●使用の条件
このスクリプト使って損害等を被っても、いっさいの保証はありません。それ以外に条件はありません。どんどん変更して使ってください。
●バージョン
2003/9/10 ver.1.1 やっちまった。入力欄に何も入力されていなくても、or検索になっていると()をくっつけてしまうというバグが発覚。修正しました。 ついでに、入力欄でリターンか押された場合、submitを捕まえて、必ずsubmittxt関数が実行されるようにしました。