CGI-BBS > SO−HO > ショッピングバスケット > ショッピングバスケットVer6について(別ウインドウ&CSV)。


カレッヂ
カレッヂ


質問者 ぐりぐら  投稿日 11/14(水) 09:58:22
いつもこのページにはお世話になっています。

ショッピングバスケットVer6にて、Ver4のようにCSVファイルでの更新は可能なのでしょうか?
取り扱っている商品数と商品情報の変更の為に更新が多くなってしまい、できれば一括でできないものかと思った次第です。

あと購入ボタンを押すと商品合計が別ウインドウ表示され、その際商品名が長いと折り返して表示されますが、合計金額の「2,800」と「円」が改行されて表示されます。
これを1行で表示させることはできないのでしょうか?

質問が2つもありますが、よろしくお願いします。
回答者 呑兵衛@大阪  [削除]  投稿日 11/15(木) 20:33:10
まず後半のご質問から。
index.html(商品ファイル)の上段にある JavaScript の function Cart() にある
width を変えることで解決できます。

前半部分について。
index.html を親ウインド、計算や申し込みなどの表示を子ウインドが行う形式が Ver 6
の機能です。先ほどの JavaScript で実現させています。
index.html は選択された商品データを cart.cgi に送り込む作業しかしませんので、
商品群を集めたリンクページを作り、そこに 実際の商品が選択できる
index1.html index2.html などをリンクさせる方法が最も簡便かと思います。
商品.csv や 編集.cgi を作って組み替えるより、この方が楽ですよ。
質問者 ぐりぐら  [削除]  投稿日 11/16(金) 14:31:46
すいません。説明不足でした。

html上段のwidth値は変えてあるのですが、表示される商品名が「エンジェリックレイヤー ポストカードコレクション (4-04-900740-1) 角川書店 x 1」のようになってしまうので、商品によっては「width=700,height=450」でも数値と円の間に改行が入ってしまいます。
画面は最低でも800*600表示を考慮しています。
そこで、CGI内を書き換える項目がないかと思った次第です。

CSVについては、在庫管理をしているPOSからデータをCSV出力できるので、それを編集して使用したいと思っています。
手入力ではなくCSVでの更新ができるようになると、毎月の商品数が1,000を超えてしまうので一括で更新できて楽になるなと思った次第です。
Ver4に戻せば簡単なのですが、Ver6が構成が好きなもので困っています。
htmlにCSVデータを埋め込み、選択されたデータをCGIに送る方法はないのでしょうか?

無茶なことを言っているかも知れませんが、よろしくお願いします。
回答者 呑兵衛@大阪  [削除]  投稿日 11/17(土) 01:14:44
いやぁ、長い商品名ですね。
画面の横幅は、使っているモニタの解像度や使用されるフォントで、一行は必ずしも
一定なものではありませんから、商品名そのものの長さを調節することで対応する
必要があります。では分析しましょう。
"コード 商品名 備考 x 数量" で商品名が構成され、一時ファイルに記録されます。
それを、窓(sub mado)に以下の通り分解し表しています。
foreach (@CARGO) {
($code,$name,$fee) = split(/\t/,$_,3);

$name が商品名になりますが、分解してみましょう。
$name =~ s/(.*)( x \d+)/$1$2/;
これで、商品名と数量を分解します。
($n_1, $n_2, $n_3) = split(/ /, $1);
これで、商品名の中身を半角空白でちぎって商品名、各備考にちぎります。
一定の長さ以上になれば適当に分解するか、最初から商品名と各備考を改行してしまうか
ここが作業の分かれ目になります。
後はご自身で工夫してみてください。

Ver4.22 の 子ウインド表示は
ver 6.05 で採用されている JavaScript

<script language="JavaScript1.2">
<!--
function Cart() { window.open("","Cart","location=no,status=yes,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,width=550,height=450"); }
//-->
</script>
および
target=Cart onSubmit='Cart()'
をHTML出力部分のヘッダーとformタグに埋め込むだけ。デザインはご自分で工夫されたし。
質問者 ぐりぐら  [削除]  投稿日 11/17(土) 06:39:06
ありがとうございます。呑兵衛@大阪さん。

「円の改行」は各項目を改行して試してみます。
「csv」については、Ver4を子ウンドウ表示させるという手がありましたね。
そこまで気付きませんでした。
こちらもこれから試してみます。

本当にありがとうございました。

このページは終了したので返信(回答)は書きこめません

Web裏技