先日、同じタイトルで質問したものです。以前した質問の内容は、以下でご確認下さい。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2387209
今度は違う問題が発生してしまいました。下記スクリプトを設定した購入ボタン(SUBMIT)を押し、ショッピングカートの画面(CGI)に入ると、きちんとJAVASCRIPTで指定した通りにVALUEの受け渡し・文字連結されていることが確認できました。
次に、カート画面の『前の画面に戻る』(onclickでhistory.go(-1)がシステムで設定されてあり変更不可)を押すと、当然商品オーダー画面に戻り、FORM内容もそのまま残っております。
そこで、もう一度同じ商品を同じ内容で購入、もしくは個数を変更・VALUEを変更などして購入しようとすると、購入個数がダブって送信されてしまいます。個数倍以外におかしい点はありませんでした。
1個購入すると → 2個、10個購入すると → 20個
IE7で確認。FIREFOXでは正常に送信されました。IEの何かバグでしょうか? この重複を防ぐような追記スクリプトがあれば教えてください。よろしくお願いします。
<script type="text/javascript">
<!--
function func() {
document.SELECT.option2.value=getValue( "option2a" ) + "/" + getValue( "option2b" );
document.SELECT.option3.value=document.SELECT.option3a.value + "/" + document.SELECT.option3b.value;
document.SELECT.submit();
}
function getValue( name ) {
value = "";
e = document.getElementsByName( name );
for( idx=0; idx<e.length; idx++ ) {
if( e[ idx ].checked ) {value += e[ idx ].value;}
}
return( value );
}
// -->
</script>
No.2ベストアンサー
- 回答日時:
これとIE6で確認してみましたが現象出ません・・
現象の出る簡単な物を提示してみてください^^;
<html><body>
<script type="text/javascript">
質問内のスクリプト
</script>
</form>
<form name="SELECT" action="cart.cgi">
商品1<input type="hidden" name="sina" value="s1"><br>
価格:49,800円(税込)<input type="hidden" name="kakaku" value="4800"><br>
購入数:<input type="text" size="3" maxlength="3" name="CNT" value="1">個<br>
<input type="hidden" name="option2">
<input type="hidden" name="option3">
<INPUT type="checkbox" name="option2a" value="1">2
<INPUT type="checkbox" name="option2b" value="2">3
<INPUT type="checkbox" name="option3a" value="3">2
<INPUT type="checkbox" name="option3b" value="4">3
<input type="button" value="カートへ" onclick="func()">
</form>
---cart.cgi---
#!/usr/bin/perl
&form_dec;
print "Content-type: text/html\n\n";
print "<html><body>";
print $form{sina}."<br>\n";
print $form{kakaku}."<br>\n";
print $form{CNT}."<br>\n";
print $form{option2}."<br>\n";
print $form{option3}."<br>\n";
print $form{option2a}."<br>\n";
print $form{option2b}."<br>\n";
print $form{option3a}."<br>\n";
print $form{option3b}."<br>\n";
print "</html></body>";
sub form_dec {
local($method);
local($query,@abs,$l_set,$value);
$method = $ENV{'REQUEST_METHOD'};
$method =~ tr/A-Z/a-z/;
if($method eq 'post'){read(STDIN,$query,$ENV{'CONTENT_LENGTH'});}
else{$query=$ENV{'QUERY_STRING'};}
@abs = split(/&/,$query);
foreach (@abs) {
($l_set,$value) = split(/=/,$_);
$value =~ tr/+/ /;
$value =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/<>/<\;>\;/g;
$form{$l_set}=$value;
}
}
ご回答ありがとうございます。pipipi523様が上記に書かれたHTMLで実験した所、確かに私の言ったようなバグは見られませんでした。どうやら、私の書いたHTMLに何か原因がありそうです。もう少し自分で検証してみます。
わざわざありがとうございました。解決への糸口が見つかりました。FORMタグ内に原因があると分かれば、あとは色々試すのみです。
この度は本当にお世話になりました。とても助かりました。
No.1
- 回答日時:
購入個数に該当するところはどこでしょう?
(購入個数はこのスクリプトに関係ないような気が・・・)
スクリプトが無いときも同じ症状がでますか?
IE6でも同じ症状はでますか?
※IE7はまだβ版なのでIE7のバグのような気がします
この回答への補足
先日は大変お世話になりました。IE6でも同じ症状を確認しました。IEの何かがそうさせているのでは・・・?と考えております。HEADに追記したJavaScriptを取ると症状は回避されましたが、どうしてもこのSCRIPTを使用したいので、現在、JavaScriptの本と格闘中です。
JAVASCRIPTは難しいし奥が深いです・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスに入力された...
-
ラジオボタンの選択で解答・点...
-
value内に変数を入れたい
-
IEだと良いがFireFoxだと動作し...
-
setIntervalの間隔を途中で変更...
-
【続】ダミーフォームの内容を...
-
セレクトボックスの初期選択状...
-
Jqueryを使って値の合計を簡単...
-
プルダウン 項目が多いので先頭...
-
dijit.form.ComboBoxについて
-
return trueとreturn falseの用...
-
javascript による POST 送信時...
-
プルダウンメニューを表の中に...
-
VBSでブラウザ上のテキストボッ...
-
追加ボタンを押した際に ok ボ...
-
netscapeでもinnerTextやinnner...
-
tableの任意行にfocusをあてる
-
submitするとなぜか2度実行する
-
JavaScriptで特定のtdタグにcla...
-
VBScriptでHTMLのセレクトボッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
UART通信の取説で,left floati...
-
javascriptでhiddenに二次元配...
-
hiddenのvalueの値を変えたい
-
VB.NET DateTimeの型について
-
テキストボックスに入力された...
-
CDOMailで本文テキストの文字コ...
-
setIntervalの間隔を途中で変更...
-
javascriptにてHTMLのhiddenエ...
-
ラジオボタンの選択で解答・点...
-
子から親へチェックボックスの...
-
フォームで入力した値を別のフ...
-
複数のsubmitボタンで押された...
-
selectboxのoptionタグのvalue...
-
Pythonで会員サイトの自動ログ...
-
クイズ作成:15個の問題から5個...
-
どのボタンがクリックされたの...
-
eval()を使わずに数値を取得し...
-
VBAをJavaScriptに変換したいです
-
ホームページビルダーのスクリ...
おすすめ情報