- 締切済み
ジャバスクリプトを入れると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> };
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- leaz024
- ベストアンサー率75% (398/526)
質問のスクリプトはシフトJISで書かれていませんか? シフトJIS全角文字には、2バイト目に 0x40 ~ 0x7E のコードを含むものがあります。 質問のスクリプトでは、コメントにある「ボタン」の「ボ」の2バイト目が 0x7B ( { の文字コード)であるため、qq{ } のカッコが不整合であるというエラーが出るのです。 質問のような複数行に渡る文字列では、qq ではなく「ヒアドキュメント」を用いるのが普通です。 たとえば、次のようにしてみてください。 $Head .= <<__JAVA_SCRIPT__; スクリプト __JAVA_SCRIPT__ また、qq の区切り文字に、文字列中に含まれない別の文字を使う、という回避方法もありますが、やはりヒアドキュメントを使う方がよいでしょう。
- arukamun
- ベストアンサー率35% (842/2394)
$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 { ですね。