- 締切済み
Javascriptの結果の出し方で困っています
自分のサイトにチェッカーを入れたくて下記の記述を書きました。 <script> function calc(f){ var sum=0; for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked) sum+=parseInt(f[i].value); } f.judge.value=sum; } </script> <form action="chekker/" method="post"> <ol> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q1" id="Q1_1" value="2"><label for="Q1_1">はい</label> <input type="radio" name="Q1" id="Q1_2" value="0"><label for="Q1_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q2" id="Q2_1" value="2"><label for="Q2_1">はい</label> <input type="radio" name="Q2" id="Q2_2" value="0"><label for="Q2_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q3" id="Q3_1" value="2"><label for="Q3_1">はい</label> <input type="radio" name="Q3" id="Q3_2" value="0"><label for="Q3_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q4" id="Q4_1" value="2"><label for="Q4_1">はい</label> <input type="radio" name="Q4" id="Q4_2" value="0"><label for="Q4_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q5" id="Q5_1" value="2"><label for="Q5_1">はい</label> <input type="radio" name="Q5" id="Q5_2" value="0"><label for="Q5_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q6" id="Q6_1" value="2"><label for="Q6_1">はい</label> <input type="radio" name="Q6" id="Q6_2" value="0"><label for="Q6_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q7" id="Q7_1" value="2"><label for="Q7_1">はい</label> <input type="radio" name="Q7" id="Q7_2" value="0"><label for="Q7_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q8" id="Q8_1" value="2"><label for="Q8_1">はい</label> <input type="radio" name="Q8" id="Q8_2" value="0"><label for="Q8_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q9" id="Q9_1" value="2"><label for="Q9_1">はい</label> <input type="radio" name="Q9" id="Q9_2" value="0"><label for="Q9_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q10" id="Q10_1" value="2"><label for="Q10_1">はい</label> <input type="radio" name="Q10" id="Q10_2" value="0"><label for="Q10_2">いいえ</label> </ol> <center> <p><font size="+1" color="#FF0000"><b>採点!!</b></font></p> <input type="text" name="judge" value="0" SIZE="10"> <input type="button" value="採点する" onClick="calc(this.form);window.open('kekka.html','windowname');"> </p></center> </form> はいが2点、いいえが0点とします。 この記述方法だと、テキストボックスに点数の合計が記載されてしまいます。 別ページのテキストボックス内に点数の合計を呼び出したいのですが、どうすればいいのでしょうか。 出来れば呼び出す際のソースコードなどもすべて記載していただけるとありがたいです。 ※ページの内容で中身が変わるわけではなく、点数の結果を表示したいです。 ※呼び出す際のコードも記載していただけたらありがたいです ※結果のページをkekka.htmlとします。 初心者なのでどうしたらいいのか分かりません。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tracer
- ベストアンサー率41% (255/621)
JavaScriptのデータは、閲覧中のページ内にのみ保持します。 そのため、移動先のページでも引き続き関連データを扱いたい場合は、なんらかの方法で「データを渡す」という作業が必要になってきます。 パッと思いつくところでは、 ・URLパラメータで渡す ・Cookieで渡す ・PHPなどのサーバーサイドプログラムで外部にデータを出力し、移動先ページで読み込む といったところではないでしょうか。 とはいえ、初心者さんに「これ使えばそのまま動くよ」というものを渡すのは難しいと思います。 というのも、ちゃんと動作するものを作るには、動作環境などそちらの仕様をうかがう必要がありますし、動作環境を正確に答えられないのが初心者さんだと思うからです。また、何らかのサンプルをお渡ししても、疑問が疑問を呼ぶだけだと思うからです。 見捨てるわけではないですが、もしどうしてもご自身で問題をクリアしたいのであれば、「URLパラメータ」「Cookie」などを最低限調べられた上で、不明な点だけを改めて質問された方が回答がつきやすいと思いますよ。 「教えて」に対しては回答がつくと思いますが、「代わりにやって」は、質問ですらないと思います。
- yambejp
- ベストアンサー率51% (3827/7415)
たとえば、計算結果をパラメータでわたしてやります kekka.html?point=10 kekka.html側でlocation.searchの値をみて点数を表示します
別のページにJavaScript でデータを持って来る事はできませんね。 よくある通販サイトなどは、JavaScript ではなくサーバーサイドで値を取得、足し算し、再表示してるんです。 初心者という事でJavaScript を使われたのでしょう。となるとCookie に保存するしかないですね。 JQuery とかjquery.cookie とかあるんですけど、おそらく初心者には敷居が高いのでJavaScript で実装したのを紹介します。下の方のCookie 管理のfunction setCookie() とgetCookie() の二つです。 最初のページでsetCookie() で集計値を保存し、次のページではgetCookie() で取り出します。 他に方法あったかなぁ?