dポイントプレゼントキャンペーン実施中!

いつも『教えて!goo』を活用させていただきありがとうございます。
またお世話になます。
今回はJavascriptで自動計算させた合計金額を、別ページで表示させることで困っております。

同じページで合計金額の表示はでき、それを基にパラメータで引き渡そうとしているのですが、なかなかうまくいきません。
同じページで合計金額の表示のタグ構成は以下のとおりです。


<自動計算側ページ:index.html>============
<html>
<head>
<SCRIPT language="JavaScript">
<!--
function cal(f){
var price=0;
for(var i=0;i<f.length;i++){
if(f[i].type=="radio" && f[i].checked) price+=parseInt(f[i].value);
}
f.price.value=price;
}
//-->
</SCRIPT>
</head>
<body>
<form>
<p>
<input type="radio" name="group1" value="30" />金:30円
<input type="radio" name="group1" value="20" />銀:20円
<input type="radio" name="group1" value="10" />銅:10円
</p>
<p>
<input type="radio" name="group2" value="400" />ダイヤモンド:300円
<input type="radio" name="group2" value="300" />サファイア:200円
<input type="radio" name="group2" value="200" />ルビー:100円
<input type="radio" name="group2" value="100" />アメジスト:100円
</p>
<p>
<input type="radio" name="group3" value="3000" />リチウム:3,000円
<input type="radio" name="group3" value="2000" />チタン:2,000円
<input type="radio" name="group3" value="1000" />白金:1,000円
</p>
<hr />
<p><input type="button" value="合計金額を計算" onClick="cal(this.form)" /><br />
合計:<input type="text" name="price" style="text-align:right" size="10" />円</p>
</form>
</body>
</html>


<p><input type="button" value="合計金額を計算" onClick="cal(this.form)" /><br />
合計:<input type="text" name="price" style="text-align:right" size="10" />円</p>
の箇所を<input type="submit" value="次ページで計算" />に書き換えて、
function cal(f){内に
var pram="price="+price
location.href="price.html?"+price;
return false;
を追記し、以上でテストすると
<index.html?group1=30&group2=300&group3=1000#>といった風に
radioボタンのnameとvalueが付いてしまい<price.html>にリンクしません。

以下に<合計金額表示ページ:price.html>も明記させていただきますので
皆様には、大変ご迷惑をおかけしますが、何卒ご回答の程よろしくお願い申し上げます。


<合計金額表示ページ:price.html>============
<html>
<head>
<SCRIPT language="JavaScript">
<!--
function pramWrite() {
var pram=location.search;
if (!pram) return false;
pram=pram.substring(1);
document.form1.price.value=pram;
}
//-->
</script>
</head>
<body onload="pramWrite()">
<form name="form1" action="#">
合計:<input type="text" name="price" style="text-align:right" size="10" />円
</form>
</body>
</html>

A 回答 (2件)

クッキー使った方が楽だろうね。

    • good
    • 0
この回答へのお礼

お礼が遅くなりました。

頭が堅いのかJavaScriptだけしか考えが浮かばなかったのですが
アドバイスの通りcookieの利用で対応いたしました。
もう少し広い視野で考えないといけませんね。

どうも回答ありがとうございます。
またよろしくお願いいたします。

お礼日時:2011/10/07 11:51

あまり良く見てはいませんが、



とりあえず、formのsubmitがキャンセルされていないので、そちらが実行されているみたい。
 onclick = "return cal(this.form);"
にすれば、動作するのでは?

あと、price.htmlでは、ロード後にスクリプトを実行するようにしないと、要素がないというエラーになりそう。
    • good
    • 0
この回答へのお礼

お礼が遅くなりました。

頭の中ではJavaScriptだけしか無かったのですが、
cookieを利用した方が簡単みたいなので
そちらで対応いたしました。

どうも回答ありがとうございます。
またよろしくお願いいたします。

お礼日時:2011/10/07 11:48

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