• 締切済み

ジャバスクリプトを入れるとCGIエラーが出てします。

下記のような感じでプログラムしてみたのですがどうしてもCGIエラーが出てしまいます。 何か打開策などございましたら教えて頂けないでしょうか?お願いします。 $Head=$Head.qq{ <script> function send(){ //どのラジオボタンがチェックされたか判定 var i; 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) { var ck_b = document.form_a.r_b[i].value; } } } else q{ if (document.form_a.r_b.checked) { var ck_b = document.form_a.r_b.value; } } //チェックされたボタンから遷移先を分ける if(ck_b=="A"){ document.form_a.action="http://www.***.co.jp/cgi-local/J_S001.cgi?ff_flg=2&free=" + document.form_a.KENSAKU.value; document.form_a.submit(); }else if(ck_b=="B"){ document.form_a.action="http://www.***.co.jp/cgi-local/H_S001.cgi?ff_flg=2&day_flg=1&free=" + document.form_a.KENSAKU.value; document.form_a.submit(); } else if(ck_b=="F"){ document.form_a.action="http://www.***.co.jp/cgi-local/SearchJobOffer1b.cgi?ff_flg=2&free=" + document.form_a.KENSAKU.value; document.form_a.submit(); } } </script> };

みんなの回答

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

質問のスクリプトはシフトJISで書かれていませんか? シフトJIS全角文字には、2バイト目に 0x40 ~ 0x7E のコードを含むものがあります。 質問のスクリプトでは、コメントにある「ボタン」の「ボ」の2バイト目が 0x7B ( { の文字コード)であるため、qq{ } のカッコが不整合であるというエラーが出るのです。 質問のような複数行に渡る文字列では、qq ではなく「ヒアドキュメント」を用いるのが普通です。 たとえば、次のようにしてみてください。 $Head .= <<__JAVA_SCRIPT__; スクリプト __JAVA_SCRIPT__ また、qq の区切り文字に、文字列中に含まれない別の文字を使う、という回避方法もありますが、やはりヒアドキュメントを使う方がよいでしょう。

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

$Head=$Head.qq{   <script>   function send(){   //どのラジオボタンがチェックされたか判定     var i;     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) {           var ck_b = document.form_a.r_b[i].value;         }       }     } else q{       if (document.form_a.r_b.checked) {         var ck_b = document.form_a.r_b.value;       }     }     //チェックされたボタンから遷移先を分ける     if(ck_b=="A"){       document.form_a.action="http://www.***.co.jp/cgi-local/J_S001.cgi?ff_flg=2&free=" + document.form_a.KENSAKU.value;       document.form_a.submit();     }else if(ck_b=="B"){       document.form_a.action="http://www.***.co.jp/cgi-local/H_S001.cgi?ff_flg=2&day_flg=1&free=" +  document.form_a.KENSAKU.value;       document.form_a.submit();     } else if(ck_b=="F"){        document.form_a.action="http://www.***.co.jp/cgi-local/SearchJobOffer1b.cgi?ff_flg=2&free=" + document.form_a.KENSAKU.value;       document.form_a.submit();     }   }   </script> }; 12行目の } else q{ がおかしいと思います。 } else { ですね。

関連するQ&A