記事No | : 8000 |
投稿日 | : 2010/10/08(Fri) 01:48:23 |
タイトル | : WEB MARTについて |
ID情報 | : sintyan |
投稿者 | : sintyan |
URL | : http://www.oomicure.com/base/mart/mart_init.txt |
WEB MARTのdataの中に例えば
A<>B<>C(納入価)<>D(販売価格)<>E
とカンマ区切りのデータが入っているとします、webmartの場合
Cの部分つまり納入価の部分を読み込むようなのですが、これを
いじって、販売価格のDの部分をデータとして引き渡すにはどうすればよいでしょうか? どなたか御教示頂けますか?
自分的には mart_init.cgiの
#-------------------------------------------------
# 登録データ認識
#-------------------------------------------------
sub get_data {
local($code,$name,$price,$intax,$deli,$dai,@op);
%cart=();
open(IN,"$datfile") || &error("Open Error: $datfile");
while (<IN>) {
($code,$name,$price,$intax,$deli,$dai) = split(/<>/);
$cart{$code} = $_;
}
close(IN);
}
↑のどこかをいじくればうまくいくのではと思ってるのですが
うまくいきません
今は、読み込む(data/data.dat)ファイルを data1.datと
3列目と4列目の配列を変えたファイルを作ってFTPしています
このままだと商品の量が増えた時や編集の際両方のファイルにアクセスして編集と大変になりそうです。
どなたかお助け頂けたら幸いです。
記事No | : 8001 |
投稿日 | : 2010/10/08(Fri) 13:56:03 |
タイトル | : Re: WEB MARTについて |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://f43.aaa.livedoor.jp/~sumure/ |
mart.datに項目を追加する場合、途中に追加するとデータの順番がずれますので通常最後尾に追加します。
今回の場合はたまたま未使用の項目がありますのでそれを利用します。
商品コード<>商品名<>価格<>消費税<>未使用<>未使用<>
管理画面に販売価格と原価が一覧表示され追加、修正、削除が行えるようになります。
●mart_admin.cgi
#-------------------------------------------------
# 管理モード
#-------------------------------------------------
-- 途中省略 --
新規登録と編集実行の2箇所あります。
if (($in{'plus1'} eq "" && $in{'plus2'} ne "") || ($in{'plus1'} ne "" && $in{'plus2'} eq "")) {
#&error("名称と金額は双方共に入力してください"); ## ★コメントアウト
}
-- 途中省略 --
<input type="button" value="▲TOPに戻る" onclick=window.open("$home","_self")>
</form>
<ul>
<li>処理を選択して送信ボタンを押してください。
</ul>
<form action="$admin" method="post">
<input type=hidden name=pass value="$in{'pass'}">
処理: <select name=job>
<option value="new">新規登録
<option value="edit">データ修正
<option value="dele">データ削除
</select>
<input type=submit value="送信する">
<p>
<table border=1 cellspacing=0 cellpadding=3>
<tr>
<th class=l>選択</th>
<th class=l>商品No</th>
<th class=l>商品名</th>
<th class=l>単価</th>
<th class=l>原価</th><!-- ★追加 -->
EOM
# 在庫データ
if ($stock) {
local($code,$zan);
%stock=();
open(IN,"$stkfile") || &error("Open Error: $stkfile");
while (<IN>) {
($code,$zan) = split(/<>/);
$stock{$code} = $zan;
}
close(IN);
print "<th class=l>在庫</th>";
}
print "</tr>\n";
@tax = ('税別','税込み');
$i = 0;
open(IN,"$datfile") || &error("Open Error: $datfile");
while (<IN>) {
$i++;
next if ($i < $page + 1);
next if ($i > $page + $pageLog);
($code,$name,$price,$intax,$plus1,$plus2) = split(/<>/);
$price = &comma($price);
$plus1 = &comma($plus1); ## ★追加
print "<tr><th class=r>
<input type=checkbox name=code value=\"$code\"></th>
<td class=r>$code</td><td class=r><b>$name</b></td>
<td align=right class=r>\\$price ($tax[$intax])</td><td align=right class=r>\\$plus1</td>\n"; ## ★修正
#-------------------------------------------------
# フォーム
#-------------------------------------------------
-- 途中省略 --
<th class=l>商品単価</th>
<td class=r><input type=text name=price size=20 value="$price" style="ime-mode:inactive"> 円</td>
</tr>
<!-- ▼ここから▼ -->
<tr>
<th class=l>商品原価</th>
<td class=r><input type=text name=plus1 size=20 value="$plus1" style="ime-mode:inactive"> 円</td>
</tr>
<!-- ▲ここ迄追加▲ -->
<tr>
<th class=l>消費税</th>
記事No | : 8003 |
投稿日 | : 2010/10/09(Sat) 19:56:14 |
タイトル | : Re^2: WEB MARTについて |
ID情報 | : sintyan |
投稿者 | : sintyan |
URL | : http://www.oomicure.com/base/mart/mart_init.txt |
> 管理画面に販売価格と原価が一覧表示され追加、修正、削除が行えるようになります。
しかしBALさんは本当すごいですね、手に取るようにCGIがわかるなんて尊敬してしまいます。
さて、再度お聞きしたいのですが、もうすでにdatファイルの
<><><><>の4番目に本来の価格がすでに大量のデータで入ってる時はどのようにすれば、4番目価格を読み込ますことが出来るでしょうか? いつも懇切丁寧に教えて頂き感謝いたします。
記事No | : 8004 |
投稿日 | : 2010/10/09(Sat) 20:42:23 |
タイトル | : Re^3: WEB MARTについて |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://f43.aaa.livedoor.jp/~sumure/ |
> さて、再度お聞きしたいのですが、もうすでにdatファイルの
> <><><><>の4番目に本来の価格がすでに大量のデータで入ってる時はどのようにすれば、4番目価格を読み込ますことが出来るでしょうか? いつも懇切丁寧に教えて頂き感謝いたします。
mart_init.cgi mart_order.cgi mart_admin.cgiの以下の箇所の配列を入れ替えれば4番目のデータを読みこむことが出来ます。
($code,$name,$price,$intax,$deli,$dai) = split(/<>/, $cart{$code});
↓
($code,$name,$intax,$price,$deli,$dai) = split(/<>/, $cart{$code});
それから、余計かもしれませんがブラウザからmart.datの内容が丸見えです。
mart.datのパーミッションを600にして外部の目に触れないようにされた方がよろしいかと。
記事No | : 8005 |
投稿日 | : 2010/10/09(Sat) 20:46:15 |
タイトル | : Re^4: WEB MARTについて |
ID情報 | : sintyan |
投稿者 | : sintyan |
URL | : http://www.oomicure.com/base/mart/mart_init.txt |
> それから、余計かもしれませんがブラウザからmart.datの内容が丸見えです。
> mart.datのパーミッションを600にして外部の目に触れないようにされた方がよろしいかと。
素早いご回答に感謝感謝です。いつもありがとうございます
また御指摘も助かります 早速パーミッション変更しました
ペコリ(o_ _)o))
記事No | : 8007 |
投稿日 | : 2010/10/09(Sat) 20:51:34 |
タイトル | : Re^4: WEB MARTについて |
ID情報 | : sintyan |
投稿者 | : sintyan |
URL | : http://www.oomicure.com/base/mart/mart_init.txt |
> > さて、再度お聞きしたいのですが、もうすでにdatファイルの
> > <><><><>の4番目に本来の価格がすでに大量のデータで入ってる時はどのようにすれば、4番目価格を読み込ますことが出来るでしょうか? いつも懇切丁寧に教えて頂き感謝いたします。
>
>
> mart_init.cgi mart_order.cgi mart_admin.cgiの以下の箇所の配列を入れ替えれば4番目のデータを読みこむことが出来ます。
>
> ($code,$name,$price,$intax,$deli,$dai) = split(/<>/, $cart{$code});
> ↓
> ($code,$name,$intax,$price,$deli,$dai) = split(/<>/, $cart{$code});
( -.-) =зフウーまる昨日一日かかったことがBALさんの手にかかれば数分いや数秒?! いやはや凄いです・・・
本当ありがとうございます これでdatファイルをひとつ抜くことが出来ます 感謝感謝です!!!