ホームページ裏技入門キット
サポート項目 > 【著者のHP】【Q&A】
この度は、「ホームページ裏技入門キット」をお買い上げいただきありがとうございました。
本書には以下のサポートがあります。

著者のホームページ
【リンク】→ http://www.kurumi.gr.jp/  (KURUMI)
【リンク】→ http://www.asari.jp/  (浅利哲)

Q&A
【Q】→ 「あなたの~度ちぇっく」のサンプルをMacintoshのブラウザ(IE4.5)で 読み込んでみたのですが、「判定」をクリックしても、何の動きもしません。
【A】→ ご質問の件ですが、どうもブラウザのバグ(*1)のようです(MacintoshのIE5ではこのバグは解消されています)。 解決策は、ヘッダ内のスクリプトの
 if(document.chkForm.q2[0].checked == true){ point += 5; }
という行のアタマに//を付けて、無効にします。 (コメントアウト)
 // if(document.chkForm.q2[0].checked == true){ point += 5; }
のようにしておいて、これに対する質問事項(この場合は「紅茶が好きだ」) を、集計ポイントとは直接関係のないダミー質問にしておいてください。 1番目の質問と、3番目以降の質問はきちんと集計できます。

(*1)マックのNetscape、WINDOWSのNetscapeとIEでは正常に動作しています。


Q&A
【Q】→ 買い物かごシステムで個数や消費税を使えないのですか?
【A】→ 本文の中にある、お買い物かごシステムですが、数量と消費税に対応したいという要望が非常に多く、新しいバージョンを開発しました。
http://www.kurumi.gr.jp/kwork/package.lzh
ブラウザで、上記のURLを指定しダウンロードしてください。データはlzh形式です。解凍ソフトのダウンロード方法はこちらをご覧ください。

Q&A
【Q】→ 買い物かごシステムで、複数のページを使ってカタログを作ると、ページ間の移動の際に注文がクリアされてしまうのですが?
【A】→ すみません。買い物かごシステムの本体であるJavaScriptファイル(shop.js)の不具合のためこのような現象が起こってしまいます。下記より新しいjsファイルをダウンロードしてお使いください。
http://www.kurumi.gr.jp/kwork/shop.js.sit
このファイルはStuffIt Expander 5形式で圧縮されています。

Q&A
【Q】→ 買い物かごシステムで、メールをデコードされた状態で受信したいのですが、どこをどうしたらいいのでしょうか?
【A】→ まずデコード用のcgiがどのようなcgiなのかこちらではちょっと分かりかねますので、先に「一般的な」cgiの利用方法についての話をします(あとで個別のcgi用の修正点も書きます)

 shop.jsの253行目に
document.write('<FORM NAME="' + MAIL_FORM_NAME +
   '" ACTION="mailto:' + MAIL_ADDRESS + '"' +

 というところがありますので、この
ACTION="mailto:' + MAIL_ADDRESS + '"
 を
ACTION="/cgi-bin/mail.cgi"
 のように、プロバイダまたはデコードサービスで指定されたデコード用のcgiへのパスに書き変えます(引用符の数・位置・種類を間違えないように注意して下さい)。

 もし、メールCGIのMETHODとしてプロバイダからPOSTではなくてGETを使って下さいと指定されていれば(そういうことはあまりないと思いますが)、255行目の
METHOD="POST" onSubmit="return (checkValues());" TARGET="_blank";/A>');
 の"POST"を"GET"に書き換えて下さい。

 以上でcgi自体へのデータ送信は動くようになると思いますが、ここから先がご利用になるcgiごとに違ってくる点です。
 ここでは裏技入門キットのP.196にもデコードcgiの利用について説明してありますのでそれを参考にされると分かりやすいかと思いますが、デコードcgiは通常「隠しフィールド」を使って送信先メールアドレスや題名などを設定します。 この「隠しフィールド」の名前や役割(メールアドレスなのか題名なのかなど)や個数などはそれぞれのcgiによってばらばらです(このため汎用的に書くことが大変難しく、書籍では紹介していません)。
 とりあえず、P.196で紹介したデコードサービスAlto Worldのcgiを例にとって説明しますが、実際にはお使いになるcgiに合わせて以下の修正を行なって下さい。

 まず、Alto Worldのcgiで必要なのはP.197に書いてある3つのフィールド(mailto/subject/location)ですので、これを送信データに追加してやればよいということになります。
  フォームで送信されるデータはshop.jsの286行目で作っています。
document.write('<INPUT TYPE="hidden" NAME="' + ORDERS_VAR + '">');
 というのがそれです。
 cgi用の隠しフィールドはこの行(286行目)とその次の行(287行目)の間に追加します。
 P.197の例をそのまま利用すると、
document.write('<INPUT TYPE="hidden" NAME="' + ORDERS_VAR + '">');

document.write('<INPUT TYPE="hidden" NAME="mailto" VALUE="xxx@yyy.zzz.com">');
document.write('<INPUT TYPE="hidden" NAME="subject" VALUE="Enquet Result">');
document.write('<INPUT TYPE="hidden" NAME="location" VALUE="http://www.yyy.zzz.com/my_thanks.page.html">');

document.write('<INPUT TYPE="submit" VALUE="' + CONFIRM_SEND_BUTTON_TEXT + '">');

というように3行(メールの都合上4行)を286行目と287行目の間に追加してやればよいということになります。
 書き方は普通の<INPUT TYPE="...">というフォームのタグを document.write('...'); でくくるという形になります。 こうした修正を利用しているデコードサービスのcgiにあわせて行なえば、送信できるようになると思います。
  送信されてくるメールは orders=品目コード@価格&品目コード@価格&... のように、品目コードと価格のペアが&で区切られてきます。