- 締切済み
検索欄を設けキーワードを入力後Enterを押すと検索されずに同じ画面が表示される
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> 上記のような感じです。 最初はこれでも良いかと思ったのですが、結局どこのサイトでもフリーワード欄にキーワードを入力した後にわざわざ検索ボタンをクリックするのではなくエンターキーを使用している事に気がつきました。 また、そのほうが使用頻度が多い方にとって良いと思いいろいろ考えたのですが、良い知恵が浮かびませんでした。 どうか良きアドバイスをいただけないでしょうか? お願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- todo36
- ベストアンサー率58% (728/1234)
#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>
- todo36
- ベストアンサー率58% (728/1234)
前の質問も含めてこんな感じ <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> にフリーワードの言葉が入れられると判断しました。が、そのフリーワードの言葉をパラメータで渡したい場合どのような書き方になるのでしょうか? ご教授いただけないでしょうか? お願いします。