検索フォームで困っている方への解決方法

このQ&Aのポイント
  • 検索フォームで文字化けが発生する問題の原因と解決方法についてまとめました。
  • 検索フォームで文字化けが発生する原因と対処方法を解説します。
  • 検索フォームの文字化け問題の解決方法をご紹介します。
回答を見る
  • ベストアンサー

検索フォームで大変困ってます

今select boxを用意したマルチな検索フォームを作ってます。 現在困ってる内容は検索した後に、文字化けを起こしてしまいます。 色々調べてみたのですが原因がわからず困っております。 どなたか分かるかたがいらっしゃいましたら教えて頂きたく思います。 また間違ってる箇所の指摘と出来れば解答も頂ければ助かります。 よろしくお願いします。 <script type="text/javascript" charset="ja"> function dosearch() { var sf=document.searchform; var submitto = sf.sengines.options[sf.sengines.selectedIndex].value + escape(sf.searchterms.value); window.location.href = submitto; return false; } </script> <div class="search"> <form name="searchform" onSubmit="return dosearch();"> <input type="text" name="searchterms"> <input type="image" alt="検索" width=30 height=30 src="Search.png" style="vertical-align:-10px;> </form> </div> <div class="select"> <form name="searchform" onSubmit="return dosearch();"> <select name="sengines"> <option value="http://www.google.com/search?q=" selected>Google</option> <option value="http://search.yahoo.co.jp/search?p=">Yahoo</option> <option value="http://www.bing.com/search?q=">Bing</option></select> </form> </div>

  • HTML
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

escape(sf.searchterms.value); ↓ encodeURI(sf.searchterms.value); にJavascriptの部分を修正いただければ、 期待の動作をするのかなと思います。 URLに埋め込む用途で文字列をエンコードする場合は、 encodeURIを使うのがセオリーかと思います!

CodeHex
質問者

お礼

本当に助かりました! ありがとうございます! このことは絶対に忘れません!!

関連するQ&A

  • 検索ファームの作り方について教えてください!

    検索をフォームを作成したく、下記ソースで作成したのですが、 検索ボタンを押してもうまくページが開きません。 色々調べてみたのですが原因がわからず困っております。 どなたか分かるかたがいらっしゃいましたら教えて頂きたく思います。 また間違ってる箇所の指摘と出来れば解答も頂ければ助かります。 よろしくお願いします。 <head> <script type="javascript"> <!-- function mySearch(frm) { var select = frm.elements["site"]; var sitename = select.options[select.selectedIndex].value; var word = frm.elements["word"].value; document.forms[sitename].elements[0].value = word; document.forms[sitename].submit(); //--> </script> </head> <html> 検索フォーム<br> <form name="google" method="get" action="http://www.google.co.jp/search"> <p><input type="hidden" name="q" value=""></p> </form> <form name="yahoo" method="get" action="http://search.yahoo.co.jp/search"> <p><input type="hidden" name="p" value=""></p> </form> <form lang="ja" onsubmit="mySearch(this); return false;"> <p>検索ワード<input type="text" name="word" size="30"> </p> <p>検索サイト <select name="site"> <option value="google">google</option> <option value="yahoo">yahoo</option> </select></p> <input type="submit" value="検索"> </form> <hr> </html>

  • フォームで絞込み検索機能を持たせるには?

    CGIでキーワード検索システムを使用していますが、FORM等であらかじめ一部の語句だけを設定してお き、絞込み検索機能も持たせたいと考えています。ただデータを渡す際にうまくいきません。 どなたかデータの引渡しに関して、いい方法があればご教授ください。 使用想定例: <form method="POST" action="./search.cgi" enctype="multipart/form-data"> <select name="search"> <option value="" selected="selected">指定なし</option> <option value="ア行">ア行</option> 中略 <option value="ワ行">ワ行</option> </select> <select name="search"> <option value="" selected="selected">指定なし</option> <option value="Men">男性</option> <option value="Women">女性</option> </select> <select name="search">選択項目</select> は追加したいと考えています。 <input type="text" name="search" size="30" value="" /> <input type="submit" name="SUBMIT" value="検索" /> </form> タグ入力で  http://xxxx.com/search.cgi?search=ア行,Men と入力した場合、絞込み検索ができるようにはなっています。(カンマでand検索) ただ、自分の考えている例だと  http://xxxx.com/search.cgi?search=ア行&search=Men&search= のようにデータが渡されてしまい、検索対象全てがヒットしてしまいます。 フォームのNAME属性が同じものを「,」で連結する。みたいな動作ができればベストなんでしょうが 。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 検索エンジンについて

    動画検索エンジンについて プログラムを書いたんですけどうまくできません。 検索したいワードを入力して検索を押しても検索できません どうしたらいいのでしょうか 書いたプログラムを貼っときます <head>~</head>内に追加 <script type="javascript"> <!-- function mySearch(frm) { var select = frm.elements["site"]; var sitename = select.options[select.selectedIndex].value; var word = frm.elements["word"].value; document.forms[sitename].elements[0].value = word; document.forms[sitename].submit(); //--> </script> <html>~</html>内に追加 検索フォーム<br> <form name="Dailymotion" method="get" action="http://www.dailymotion.com/jp"> <p><input type="hidden" name="q" value=""></p> </form> <form name="ニコニコ動画" method="get" action="http://www.nicovideo.jp/"> <p><input type="hidden" name="qt" value=""></p> </form> <form name="youtube" method="get" action="http://www.youtube.com/?gl=JP&hl=ja"> <p><input type="hidden" name="p" value=""></p> </form> <form lang="ja" onsubmit="mySearch(this); return false;"> <p>検索ワード<input type="text" name="word" size="30"> </p> <p>検索サイト <select name="site"> <option value="">Dailymotion</option> <option value="ニコニコ動画">ニコニコ動画</option> <option value="youtube">youtube</option> </select></p> <button type="submit"><img src="ボタン内画像URL(オプション)">検索!!!</button> </form> <hr> です。 回答待ってます この質問に補足する

  • なぜ?数日経つと使えなくなる検索フォーム

    ここに、http://opac.ndl.go.jp/index.html 「雑誌記事索引の検索/申込み」というのがありますが、そこにある 論題名、著者、雑誌名、検索ボタンの4つだけを切り出し、編集して 自作HTMLの検索フォームとして活用したいです。 (HDDに保管してIE6のスタートページにする) 自分なりに必要っぽいタグを切り貼りして使っていたのですが、数日経つと 「セッションの情報が存在しません。」などとエラーで使えなくなってしまいます。 例えば、下記もしばらくは使っていたのですが数日後に↑のエラーで使えなく なってしました。書かれた言語もよくわかりませんが、原因は何でしょうか? (↓EUCです) <form method="post" name="formlist" action="http://opac.ndl.go.jp/Process"> <input type="hidden" name="LS" value="6304253488"> <input type="text" name="TA_MTHEME" value=""> <input type="text" name="TA_MAUTHOR" value=""> <input type="text" name="TA_MTITLE" value=""> <input type="submit" name="MODE_10090002:S2" value="検索"> <select name="ACS"> <option value="SEARCH_CONDITION_AND" selected>AND</option> <option value="SEARCH_CONDITION_OR">OR</option> </select> <input type="hidden" name="SEARCH_WINDOW_INFO" value="06">

    • ベストアンサー
    • CGI
  • 複数フォームに同じnameがある場合の入力チェック

    うまく入力チェックが動作せず、行き詰まっており困っております。 アドバイスを頂ければ助かります。ソースは以下です。 function chkform(frm){ var mst=Array("dep","plan"); var mst_nm = Array("出発地","プラン"); var len=mst.length; for(i=0; i<len; i++){ var obj=frm.elements[mst[i]]; if(obj.type=="text" || obj.type=="textarea"){ if(obj.value==""){ alert(mst_nm[i]+"は必須入力項目です"); frm.elements[mst[i]].focus(); return false; } }else{ for(var j=0, chk=0; j<obj.length; j++){ if(obj[j].checked) chk++; } if(chk==0){ alert(mst_nm[i]+"は必須入力項目です"); return false; } } } return true; } <form name="order1" onsubmit="return chkform(this)"> <input type="radio" name="dep" value="osa" />大阪   <input type="radio" name="dep" value="tky">東京 <br /> <select name="plan"> <option value="">▼プランを選択▼</option> <option value="biz">出張</option> <option value="tvl">旅行</option> <option value="day">日帰り</option> </select> <br /> <input type="submit" name="btn1" value="確認"> </form> <form name="order2" onsubmit="return chkform(this)"> <input type="radio" name="dep" value="osa" />大阪   <input type="radio" name="dep" value="tky">東京 <br /> <select name="plan"> <option value="">▼プランを選択▼</option> <option value="biz">出張</option> <option value="tvl">旅行</option> <option value="day">日帰り</option> </select> <br /> <input type="submit" name="btn2" value="確認"> </form>

  • WordPress 検索フォームのカスタマイズ方法を教えてください。

    WordPress 検索フォームのカスタマイズ方法を教えてください。 ウィジェットから検索フォームを設定すると<label>が挿入されますが「検索:」の表示が邪魔です。表示しないようにするにはどうしたらいいですか?もし<label>が必要ないものなら挿入されないようにしたいです。コードは以下のようになっています。 <h2>タイトル</h2> <form role="search" method="get" id="searchform" action="URL省略" > <div><label class="screen-reader-text" for="s">検索:</label> <input type="text" value="" name="s" id="s" /> <input type="submit" id="searchsubmit" value="検索" /> </div> </form>

    • ベストアンサー
    • CSS
  • JAVAスクリプトでのFORM入力チェックの方法

    JAVAスクリプトでのFORM入力チェックの方法を教えてください。 ネットでいろいろ探してはめ込んだのですが、動作するプログラムが下記のしかありませんでした。 ラジオボタンの入力チェックとプルダウンの入力チェックを同時にしたいのですがよくわかりません。 今の状態ではラジオボタンをチェックしても未入力のアラートが出てしまいます。 あとこれにプルダウンの入力チェックをつけたいのですが… すいませんがどなたか教えてください。よろしくお願いします。 function Form_Validator(theForm) { var flag=false; var i; for(i=0; i<theForm.OPT-00-06.length; i++){ if (theForm.OPT-00-06[i].checked){ flag = true; break; } } if(!flag){ alert("\"OPT-00-06\" にチェックしてください。"); return (false); } if(confirm("入力もれはありません。")){ return (true); }else{ return (false); } <form name="form1" method="POST" action="~cgi?" onsubmit="return Form_Validator(this);"> ・ ・ <input type="radio" name="OPT-00-06" value="A"> <input type="radio" name="OPT-00-06" value="B"> ・ ・ <select name="OPT-00-07"> <option value="">選択してください</option> <option value="80">80</option> <option value="81">81</option> ・ ・ ・ <select name="OPT-00-08"> <option value="">選択してください</option> <option value="35">35cm</option> <option value="36">36cm</option> ・ ・ ・ <input type="submit" value="カートに入れる" name="submit">   <input type="reset" value="内容をクリア" name="reset"> </div> </form>

  • PHPで日付の範囲検索

    PHPを使って日付の範囲検索を実装しています。日付をセレクトフォームで選択し、該当する日時をSELECT文で記述するという流れです。イメージは以下のような感じですが、大体合っていますか? <? php if (!empty(filter_input(INPUT_POST, 'day'))) { $day = filter_input(INPUT_POST, 'day'); ・・・・ SELECT 文   ・・・・ ?> <html> <div class="search"> <form method="post"> <select name="year"> <?php for ($i=2000; $i <= 2021; $i++) { $year .= '<option value="'.$i.'">'.$i.'年</option>'; } ?> </select> <select name="month"> <?php for ($i=1; $i <= 12; $i++) { $month .= '<option value="'.$i.'">'.$i.'月</option>'; } ?> </select> <select name="day"> <?php for ($i=1; $i <= 31; $i++) { $day .= '<option value="'.$i.'">'.$i.'日</option>'; } ?> </select> <input type="hidden" name="search" value="<?php echo $_POST['year'].'-'. $_POST['month'].'-'. $_POST['date']; ?>"> <input type="submit" value="検索"> </form> </div> </html>

    • ベストアンサー
    • PHP
  • html css 検索ボタン 検索窓 余白

    検索ボタン、検索窓のHTML,CSSについての質問をさせていただきます。 どこかから引っ張ってきた検索ボタン・検索窓のHTMLを自分のサイトに埋め込んでみたら、bottomにけっこう広い邪魔な余白ができてしまいます。 padding,margin,valign...など、持ってる知識をふりしぼりましたが改善されません。その記述内容は以下の通りです。 =============================== <table> <tr><td> <div> <form action="http://search-web.○○○○○.○○/cgi-bin/search" name="form" id="form" onsubmit=" return f_submit(); "> <input name="site" value="○○○○○.○○" type="hidden"> <input name="query" value="○○○○○" maxlength="300" type="text" class="cw"> <input value="検索" class="button" type="submit">    </form> </div> </td></tr> </table> =============================== 上記内容を書かない場合は高さ・余白の調節ができるのですが、書き込むと何もできず、下部に余白がかなりできてしまいます。 heightで高さを指定しても改善されません。 1.何か原因があるのか教えてください。 2.また、良い記述内容、改善策を教えてください。 3.全てのブラウザで同じように表示できる記述内容があれば教えてください。 初歩的な質問かもしれませんが、困ってますのでどうぞよろしくお願いします。

  • フォームで複数の関数を1つにまとめる方法

    フォームに関して、必須項目が未入力・未選択の場合に警告する JavaScriptを記述したいのですが、 複数のJavaScriptを1つにまとめるにはどうしたら良いのでしょうか。 具体的には、 【1】テキストフィールド未入力の場合に警告する 【2】メールアドレスが間違いor未入力の場合に警告する 【3】セレクトボックスが未選択の場合に警告する という3つを同じページで同時に設定する方法が分かりません。 記述した内容は下記の通りです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 【1】 <script type="text/javascript"> <!-- function check(){ var flag = 0; // 設定開始(必須にする項目を設定してください) if(document.form1.field1.value == ""){ // 「お名前」の入力をチェック flag = 1; } else if(document.form1.field2.value == ""){ // 「ご住所」の入力をチェック flag = 1; // 設定終了 if(flag){ window.alert('必須項目に未入力がありました'); // 入力漏れがあれば警告ダイアログを表示 return false; // 送信を中止 } else{ return true; // 送信を実行 } } // --> </script> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 【2】 <script type="text/javascript"> <!-- function check(){ var flag = 0; // 設定開始(チェックする項目を設定してください) if(!document.form1.email.value.match(/.+@.+\..+/)){ flag = 1; } // 設定終了 if(flag){ window.alert('メールアドレスが正しくありません'); // メールアドレス以外が入力された場合は警告ダイアログを表示 return false; // 送信を中止 } else{ return true; // 送信を実行 } } // --> </script> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 【3】 <script type="text/javascript"> <!-- function check(){ var flag = 0; // 設定開始(チェックする項目を設定してください) if(document.form1.select1.options[document.form1.select1.selectedIndex].value == ""){// 「地域」の入力をチェック flag = 1; } else if(document.form1.select2.options[document.form1.select2.selectedIndex].value == ""){ // 「生年月」の入力をチェック flag = 1; } else if(document.form1.select3.options[document.form1.select3.selectedIndex].value == ""){ // 「生年日」の入力をチェック flag = 1; } // 設定終了 if(flag){ window.alert('選択されていません'); // 選択されていない場合は警告ダイアログを表示 return false; // 送信を中止 } else{ return true; // 送信を実行 } } // --> </script> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 【本文】 <form name="form1" onSubmit="return check()"> ■お名前:<input type="text" name="field1" size="30" style="ime-mode:active;"> ■メールアドレス:<input type="text" name="email" size="30" style="ime-mode:inactive;"> ■地域: <select name="select1"> <option value="北海道">北海道</option> <option value="青森県">青森県</option> ・ ・ </select> ■ご住所<input type="text" name="field3" size="60" style="ime-mode:active;"> ■生年月日 <select name="select2"> <option>1</option> <option>2</option> ・ ・ </select>月 <select name="select3"> <option>1</option> <option>2</option> ・ ・ </select>日 </form> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ JavaScriptの記述経験が殆ど無いため、 出来る限り詳しくご教示願いたく、 よろしくお願い致します!

専門家に質問してみよう