プロが教える店舗&オフィスのセキュリティ対策術

JavaScriptとperlとMySQLでデータベース内を検索するような仕組みを作りました。が動作が上手くいきません。

「うまくいかない点」
フリーワード検索欄を設けキーワードを入力後Enterを押すと検索されずに同じ画面が表示される

「仕掛け」
1.ラジオボタンで検索の種類を選んでもらいます。
<INPUTtype="radio"name="r_b"VALUE="F"checked>
<INPUTtype="radio"name="r_b"VALUE="A">

2.検索ボタンをクリックした際にヘッダーに書かれているJavaScriptで振り分けてCGIファイルに飛びます。
<SCRIPT>
functionsend(){
vari;
if(document.form_a.r_b.length){
for(i=0;i<document.form_a.r_b.length;i++){
if(document.form_a.r_b[i].checked){
varck_b=document.form_a.r_b[i].value;
}
}
}else{
if(document.form_a.r_b.checked){
varck_b=document.form_a.r_b.value;
}
}
if(ck_b=="A"){
document.form_a.action=""+document.form_a.KENSAKU.value;
document.form_a.submit();
}elseif(ck_b=="F"){
document.form_a.action=""+document.form_a.KENSAKU.value;
document.form_a.submit();
}
}
</SCRIPT>
上記のような感じです。
最初はこれでも良いかと思ったのですが、結局どこのサイトでもフリーワード欄にキーワードを入力した後にわざわざ検索ボタンをクリックするのではなくエンターキーを使用している事に気がつきました。
また、そのほうが使用頻度が多い方にとって良いと思いいろいろ考えたのですが、良い知恵が浮かびませんでした。
どうか良きアドバイスをいただけないでしょうか?
お願いします。

A 回答 (2件)

#1はqが渡らないので改訂版



<form action="http://www.google.co.jp/search">
<input type=hidden name=q>
</form>
<form action="http://search.goo.ne.jp/web.jsp">
<input type=hidden name=MT>
</form>

<form onsubmit="return myfunc(this)">
<input type=text name=q>
<input type=radio name=rb1 value=0>google.com
<input type=radio name=rb1 value=1>goo.ne.jp
<input type=submit>
</form>
<script>
function myfunc(frm)
{
for(i = 0; i < frm.rb1.length; i++){
if(frm.rb1[i].checked){
document.forms[i].elements[0].value = frm.q.value;
document.forms[i].submit();
return false;
}
}
return false;
}
</script>
    • good
    • 0

前の質問も含めてこんな感じ



<form onsubmit="return myfunc(this.rb1)">
<input type=text name=q>
<input type=radio name=rb1 value="http://aaa">aaa
<input type=radio name=rb1 value="http://bbb">bbb
<input type=submit>
</form>
<script>
function myfunc(rb)
{
for(i = 0; i < rb.length; i++){
if(rb[i].checked){
//alert(i);
location.href = rb[i].value;
return false;
}
}
return false;
}
</script>

この回答への補足

ご回答頂き本当にありがとうございました。

上記プログラムだと
<input type=text name=q>
にフリーワードの言葉が入れられると判断しました。が、そのフリーワードの言葉をパラメータで渡したい場合どのような書き方になるのでしょうか?

ご教授いただけないでしょうか?
お願いします。

補足日時:2003/04/24 18:05
    • good
    • 0

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