アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記のような感じでプログラムしてみたのですがどうしても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 … + 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 … + 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. … + document.form_a.KENSAKU.value;
document.form_a.submit();
}
}
</script>
};

A 回答 (2件)

質問のスクリプトはシフトJISで書かれていませんか?


シフトJIS全角文字には、2バイト目に 0x40 ~ 0x7E のコードを含むものがあります。
質問のスクリプトでは、コメントにある「ボタン」の「ボ」の2バイト目が 0x7B ( { の文字コード)であるため、qq{ } のカッコが不整合であるというエラーが出るのです。

質問のような複数行に渡る文字列では、qq ではなく「ヒアドキュメント」を用いるのが普通です。
たとえば、次のようにしてみてください。

$Head .= <<__JAVA_SCRIPT__;
スクリプト
__JAVA_SCRIPT__

また、qq の区切り文字に、文字列中に含まれない別の文字を使う、という回避方法もありますが、やはりヒアドキュメントを使う方がよいでしょう。
    • good
    • 0

$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 … + 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 … +  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. … + document.form_a.KENSAKU.value;
      document.form_a.submit();
    }
  }
  </script>
};

12行目の
} else q{
がおかしいと思います。
} else {
ですね。
    • good
    • 0

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