複数のランダムクイズの表示がうまくいかない!

このQ&Aのポイント
  • 複数のランダムクイズの表示がうまくいかない問題について質問があります。
  • プログラムを作成しましたが、表示が思うようにいかずバラバラです。
  • どなたか分かる方いらっしゃいましたらご教授お願いします。
回答を見る
  • ベストアンサー

複数のランダムクイズの表示がうまくいきません・・・。

以下のようなプログラムを作成しましたが、表示が思うようにいきません。。 本当なら複数の問題をランダムで5問ずつ表示したいのですが、すべて表示することができず、1問のみだったり、3問のみしか表示されなかったりとバラバラです。 記述方法が悪いのでしょうか?どなたか分かる方いらっしゃいましたらご教授お願いします。 ------------------------- <% accessdb="cityquiz" cn="DRIVER={Microsoft Access Driver (*.mdb)};" cn=cn & "DBQ=" & server.mappath(accessdb) set rs = Server.CreateObject("ADODB.Recordset") sql = "select * from quiz" rs.Open sql, cn, 1, 3 total_records=rs.recordcount randomize random_number=int(rnd*total_records)+1 rs.MoveFirst do while not rs.eof and counter <> random_number counter = counter + 1 if counter= random_number then response.write rs("問題") & "<br>" response.write "<input type='radio' name='Q1' vakue='" & rs("ID") & "1'>" & rs("1択") & "<br>" response.write "<input type='radio' name='Q1' vakue='" & rs("ID") & "2'>" & rs("2択") & "<br>" response.write "<input type='radio' name='Q1' vakue='" & rs("ID") & "3'>" & rs("3択") & "<br>" response.write "<input type='radio' name='Q1' vakue='" & rs("ID") & "4'>" & rs("4択") & "<br>" response.write "<br>" end if counter2 = counter + 2 if counter2= random_number then response.write rs("問題") & "<br>" response.write "<input type='radio' name='Q2' vakue='" & rs("ID") & "1'>" & rs("1択") & "<br>" response.write "<input type='radio' name='Q2' vakue='" & rs("ID") & "2'>" & rs("2択") & "<br>" response.write "<input type='radio' name='Q2' vakue='" & rs("ID") & "3'>" & rs("3択") & "<br>" response.write "<input type='radio' name='Q2' vakue='" & rs("ID") & "4'>" & rs("4択") & "<br>" response.write "<br>" end if counter3 = counter + 3 if counter3= random_number then response.write rs("問題") & "(3)<br>" & counter3 response.write "<input type='radio' name='Q3' vakue='" & rs("ID") & "1'>" & rs("1択") & "<br>" response.write "<input type='radio' name='Q3' vakue='" & rs("ID") & "2'>" & rs("2択") & "<br>" response.write "<input type='radio' name='Q3' vakue='" & rs("ID") & "3'>" & rs("3択") & "<br>" response.write "<input type='radio' name='Q3' vakue='" & rs("ID") & "4'>" & rs("4択") & "<br>" response.write "<br>" end if ~略~ rs.movenext loop %>

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

これだと、連続した問題しか表示されないし、random_numberによっては5問表示されないです。 counter?の値を追ってみましょう 1回目のループでは counter=0+1=1 counter2=counter+2=3 counter3=counter+3=4 counter4=counter+4=5 counter5=counter+5=6 になります。 2回目のループでは counter=1+1=2 counter2=counter+2=4 counter3=counter+3=5 counter4=counter+4=6 counter5=counter+5=7 になります。以下同様に増えていきます。 ここで、random_number=6だったとすると 1回目→counter5=6で 第1レコードの問題を表示(radio name="Q5") 2回目→counter4=6で 第2レコードの問題を表示(radio name="Q4") 3回目→counter3=6で 第3レコードの問題を表示(radio name="Q3") 4回目→counter2=6で 第4レコードの問題を表示(radio name="Q2") 5回目→該当無し 6回目→counter=6で 第6レコードの問題を表示(radio name="Q1") →counter=random_numberでループ終了 となり、5問表示されます。 ただし、必ず連続した問題が表示されます。また、ラジオボタンはQ5からの逆順です。 では、random_number=2だったらどうでしょうか? 1回目→該当無し 2回目→counter=2で 第2レコードの問題を表示(radio name="Q1") →counter=random_numberでループ終了 と1問しか表示されません。 現在の構造をそのまま使いたいなら、 random_number=int(rnd*(total_records-5))+1+5 として、random_numberを6~total_recordsの範囲になるようにします。 よりランダムにする常套手段として ・1~total_recordsの乱数を5つ、同じ値にならないように用意する。 ・それぞれの乱数に該当するレコードを表示 とします。 あと、変数counterに初期値が無いまま、いきなりcounter=coutnter+1と使用しています。 一応、暗黙の初期値として0が入るので、今回は動作していますが、思わぬバグを引き起す原因となります。 whileループの前に count=0 と明示的に初期値を入れるような癖を身に付けましょう。

yk_happy
質問者

お礼

分かりやすく丁寧な解説ありがとうございました。 おかげさまで解決することが出来ました。 初期値を入れることも大事なんですね。バグを引き起こす原因になるのも初めて知りました。 これからはつけるように心がけていきたいと思います。 どうもありがとうございました。

関連するQ&A

  • fc2ブログの記事内で、ラジオボタンでクイズ

    FC2ブログの記事内でラジオボタンを設置して択一クイズが作りたいです。 下記のプログラムを、ブログパーツのフリーエリアに入力すると、サイドメニューでは正常に動作します。 しかし、記事内に入力すると、ラジオボタンにチェックは入れられるのですが、採点ボタンを押しても反応しません。 どうすれば、ブログの記事内で、動作するのでしょうか?また、下記のプログラムに限らず可能なものがあれば教えてください。 プログラムを公開されている方のホームページには、メールフォームやコメント欄がないので、直接伺うことができませんでした。http://www.pori2.net/js/form/4.html 宜しくお願いします。 <form name="radioB"> カナダの首都は?<br> <input type="radio" name="Q1">オタワ<br> <input type="radio" name="Q1">トロント<br> <input type="radio" name="Q1">モントリオール<br> <br> スイスの首都は?<br> <input type="radio" name="Q2">ジュネーブ<br> <input type="radio" name="Q2">チューリッヒ<br> <input type="radio" name="Q2">ベルン<br> <br> ドイツの首都は?<br> <input type="radio" name="Q3">ハンブルク<br> <input type="radio" name="Q3">ブレーメン<br> <input type="radio" name="Q3">ベルリン<br> <br> スペインの首都は?<br> <input type="radio" name="Q4">バルセロナ<br> <input type="radio" name="Q4">マドリード<br> <input type="radio" name="Q4">リスボン<br> <br> オーストラリアの首都は?<br> <input type="radio" name="Q5">シドニー<br> <input type="radio" name="Q5">メルボルン<br> <input type="radio" name="Q5">キャンベラ<br> <br> <input type="button" value="採点" onclick="saiten()" /> </form> <script> function saiten(){ var seikai=0; //正解数を入れる変数 //答えの番号を配列に入れる var trueAns = new Array(0,5,8,10,14); //正解のラジオボタンがチェックされているか確認 for (i=0 ; i<5 ; i++) { if( document.radioB.elements[trueAns[i]].checked ) seikai++; } alert("あなたは"+seikai*20+"点でした!"); } </script>

  • fc2ブログの記事内で、ラジオボタンでクイズ

    FC2ブログの記事内でラジオボタンを設置して択一クイズが作りたいです。 下記のプログラムを、ブログパーツのフリーエリアに入力すると、サイドメニューでは正常に動作します。 しかし、記事内に入力すると、ラジオボタンにチェックは入れられるのですが、採点ボタンを押しても反応しません。 どうすれば、ブログの記事内で、動作するのでしょうか?また、下記のプログラムに限らず可能なものがあれば教えてください。 プログラムを公開されている方のホームページには、メールフォームやコメント欄がないので、直接伺うことができませんでした。http://www.pori2.net/js/form/4.html 宜しくお願いします。 <form name="radioB"> カナダの首都は?<br> <input type="radio" name="Q1">オタワ<br> <input type="radio" name="Q1">トロント<br> <input type="radio" name="Q1">モントリオール<br> <br> スイスの首都は?<br> <input type="radio" name="Q2">ジュネーブ<br> <input type="radio" name="Q2">チューリッヒ<br> <input type="radio" name="Q2">ベルン<br> <br> ドイツの首都は?<br> <input type="radio" name="Q3">ハンブルク<br> <input type="radio" name="Q3">ブレーメン<br> <input type="radio" name="Q3">ベルリン<br> <br> スペインの首都は?<br> <input type="radio" name="Q4">バルセロナ<br> <input type="radio" name="Q4">マドリード<br> <input type="radio" name="Q4">リスボン<br> <br> オーストラリアの首都は?<br> <input type="radio" name="Q5">シドニー<br> <input type="radio" name="Q5">メルボルン<br> <input type="radio" name="Q5">キャンベラ<br> <br> <input type="button" value="採点" onclick="saiten()" /> </form> <script> function saiten(){ var seikai=0; //正解数を入れる変数 //答えの番号を配列に入れる var trueAns = new Array(0,5,8,10,14); //正解のラジオボタンがチェックされているか確認 for (i=0 ; i<5 ; i++) { if( document.radioB.elements[trueAns[i]].checked ) seikai++; } alert("あなたは"+seikai*20+"点でした!"); } </script>

  • 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)"> </p></center> </form> はいが2点、いいえが0点とします。 この記述方法だと、テキストボックスに点数の合計が記載されてしまいます。 別ページに点数の合計を呼び出したいのですが、どうすればいいのでしょうか。 ※ページの内容で中身が変わるわけではなく、点数の結果を表示したいです。 ※呼び出す際のコードも記載していただけたらありがたいです ※結果のページをkekka.htmlとします。 初心者なのでどうしたらいいのか分かりません。よろしくお願いします。

  • 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とします。 初心者なのでどうしたらいいのか分かりません。よろしくお願いします。

  • scriptについて質問です。

    自分のサイトにチェッカーを入れたくて下記の記述を書きました。 <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> 質問項目が10個あるのですが、どれか一つにでもチェックが入っていない場合 「全てチェックしてください」と返したいのですがどうすればいいのでしょうか? また点数の合計が10点の時は1.html 点数が14点の時は2.htmlという場合どういった記述をすればいいのでしょうか? ご面倒ですが回答のほどよろしくお願いします。

  • 質問の選択肢をランダム表示したいです。

    4つの選択肢の中から一つを選ばせて、その結果を集計して、結果によって違うページに飛ぶスクリプトを作っています。 その中で4つの選択肢をランダムに表示させる方法がわかりません。 Q1赤青緑黄,Q2赤青緑黄,Q3赤青緑黄… Q5赤青緑黄と現在なっていますが、 Q1緑黄赤青,Q2赤緑黄青,Q3青緑赤黄… Q5赤青緑黄という感じにしてもちゃんと集計してくれるようにしたいです。 以下のプログラムまでできています。アドバイスお願いします。 <title>好きな色</title> <script type="text/javascript"><!-- function count(f){ var aka = 0; var ao = 0; var yellow = 0; var midori = 0; for(var i=1; i<=10; i++){ if(f["q" + i][0].checked && f["q" + i][0].value=="1"){ aka++; } else if(f["q" + i][0].checked && f["q" + i][0].value=="2"){ aka--; } else if(f["q" + i][1].checked && f["q" + i][1].value=="3"){ ao++; } else if(f["q" + i][1].checked && f["q" + i][1].value=="4"){ ao--; } else if(f["q" + i][2].checked && f["q" + i][2].value=="5"){ midori++; } else if(f["q" + i][2].checked && f["q" + i][2].value=="6"){ midori--; } else if(f["q" + i][3].checked && f["q" + i][3].value=="7"){ yellow++; } else if(f["q" + i][3].checked && f["q" + i][3].value=="8"){ yellow--; } } if( aka > ao && aka > midori && aka > yellow){ location.href="01.html"; } else if( yellow > ao && yellow > midori && yellow > aka){ location.href="02.html"; } else if( ao > aka && ao > midori && ao > yellow){ location.href="03.html"; } else if( midori > ao && midori > aka && midori > yellow){ location.href="04.html"; } else { location.href="05.html"; } } //--> </script> </head> <body> <center> <form name="test"> <p> <table border="1"> <tr> <td> Q1 </td> <td>Yes</td> <td>No</td></tr> <br> <td><label>赤</label></td> <td><input type="radio" name="q1" value="1" /></td> <td><input type="radio" name="q2" value="2" /></td></tr> <td><label>青</label></td> <td><input type="radio" name="q1" value="3" /></td> <td><input type="radio" name="q2" value="4" /></td></tr> <td><label>緑</label></td> <td><input type="radio" name="q1" value="5"/></td> <td><input type="radio" name="q2" value="6"/></td></tr> <td><label>黄</label></td> <td><input type="radio" name="q1" value="7"/></td> <td><input type="radio" name="q2" value="8"/></td></tr> </table> <table border="1"> <tr> <td> Q2 </td> <td>Yes</td> <td>No</td></tr> <br> <td><label>赤</label></td> <td><input type="radio" name="q3" value="1"/></td> <td><input type="radio" name="q4" value="2"/></td></tr> <td><label>青</label></td> <td><input type="radio" name="q3" value="3" /></td> <td><input type="radio" name="q4" value="4" /></td></tr> <td><label>緑</label></td> <td><input type="radio" name="q3" value="5"/></td> <td><input type="radio" name="q4" value="6"/></td></tr> <td><label>黄</label></td> <td><input type="radio" name="q3" value="7"/></td> <td><input type="radio" name="q4" value="8"/></td></tr> </table> <input type="button" value="採点" onclick="count(this.form)"> </form> </center> </body> </html>

  • ラジオボタンをランダムに表示させるには?

    小テストのプログラミングを作っています。 質問の答えの選択肢がラジオボタンで4つ表示されるのですが、毎回同じ位置に答えがあると何度も問題を解いているうちに、回答者は答えの場所を覚えてしまいます。 なので質問の答をランダムに表示させたいのですが、どうしてもやり方がわかりません。 どうぞよろしくお願いいたします。 問1:小説「吾輩は猫である」の作者は誰ですか?<br> <INPUT type="radio" name="sentakushi1" value="1">夏目漱石<br> <INPUT type="radio" name="sentakushi1" value="2">内田百閒<br> <INPUT type="radio" name="sentakushi1" value="3">太宰治<br> <INPUT type="radio" name="sentakushi1" value="4">芥川龍之介<br>

    • ベストアンサー
    • PHP
  • フォームのValue値

    万年カレンダーを作ってるのですが、やりたいこととしてはform内のバリュー値を、if文で変数(日付)に変更してそれをFrom内のバリューに置き換えたいのですが、ifででた変数がValueにおきかえれません。 <form method="POST" action="jan_Edit.asp" id=submit> <!--<input type="hidden" name="HDN" Value =<% = SBMT %> >--> <input type="submit" value="PreviousYear" id=SUB1 name=SUB1> <input type="submit" value="PreviousMonth" id=SUB1 name=SUB1> <input type="submit" value="ThisMonth" id=SUB1 name=SUB1> <input type="submit" value="NextMonth" id=SUB1 name=SUB1> <input type="submit" value="NextYear" id=SUB1 name=SUB1> </form> dim SUB1 SUB1 = Request.querystring("SUB1") if SUB1="ThisMonth" then Response.Write("AA<br>") SUB1 = "" elseif SUB1="PreviousYear" then Response.Write("bb<br>") SUB1=YY1 ' YY1は去年です elseif SUB1="PreviousMonth" then Response.Write("cc<br>") SUB1=MM1 'MM1は一か月前です elseif SUB1="NextMonth" then Response.Write("dd<br>") SUB1=MM2 'MM2は一か月後です elseif SUB1="NextYear" then Response.Write("ee<br>") SUB1=YY2 'YY2は一年後です end if

  • ページング値渡しについて

    sea_clear_sky8です。 [環境] OS 98SE PWS [質問内容] ページングの値渡しの際がうまくいきません。 忙しいところすいませんがよろしくお願いします。 次のページっていうのをボタンで作って、次の10件が表示させるように させたいのです。 下記ソースのvar frm = document.GetElemntById("myForm");の部分で オブジェクトでサポートされていないプロパティまたはメソッド ですとエラーがでます。 それからコンパイル後、SQLエラーと表示されます。 このSQLエラーというのは下記ソースのエラー処理で行っている SQLエラーというのが表示されています。 [ソース] [bunkatsu1.html] <html> <body> <form action="bunkatsu1.asp" method="post"> 名前:<input type="text" name="nm"> <input type="hidden" name="page_num" value="0"> <input type="submit" name="exec" value="検索"> </form> </body> </html> [bunkatsu1.asp] <html> <script type="text/javascript"> <!-- function myClick() { var frm = document.GetElemntById("myForm"); frm.action ="bunkatsu1.ASP"; frm.method= "get"; frm.submit(); } // --> </script> <body> <% On Error Resume Next Dim DB,CMD,RS,AllCnt '接続処理 Set DB = Server.CreateObject("ADODB.Connection") DB.Open "mysql" If Err.number <> 0 then Response.Write "接続エラー" Response.End End If ' LIMITを使ったSELECT文を実行 Set CMD = Server.CreateObject("ADODB.Command") CMD.ActiveConnection = DB CMD.CommandText = "select * from test_t " & _ "where name like '%" & Request("nm") & "%' " & _ "order by id " & _ "limit " & Request("page_num")*10 & ",10" Set RS = CMD.Execute If Err.number <> 0 then Response.Write "SQL実行エラー" Response.End End If ' 結果出力 Response.Write "<table border=1>" Response.Write "<tr><td>id</td><td>name</td></tr>" Do Until RS.EOF Response.Write "<tr>" Response.Write "<td>" & RS("id") & "</td>" Response.Write "<td>" & RS("name") & "</td>" Response.Write "</tr>" RS.MoveNext If Err.number <> 0 then Response.Write "次データ取得エラー" Response.End End If Loop Response.Write "</table>" ' 検索条件に該当する全データの件数取得 CMD.CommandText = "select count(*) from test_t " & _ "where name like '%" & Request("nm") & "%' " Set RS = CMD.Execute If Err.number <> 0 then Response.Write "SQL実行エラー" Response.End End If AllCnt=RS(0) ' ページ数表示 if AllCnt>10 then Response.Write Abs(Int(-1*(AllCnt/10))) & "ページ中の" Response.Write Request("page_num")+1 & "ページ目を表示<br>" end if ' 前の10件 if Request("page_num")<>0 then end if ' 次の10件 if ((Request("page_num")+1)*10) < AllCnt then response.write "<form id=""myForm"" method=""post"">" response.write "<input type=""Submit"" value=""次の10件&gt;"" onclick=""myClick();"">" response.write "<input type=""HIDDEN"" name=""num"" value=""&request(""num"")&"">" このTEXTボックスはHIDDENのNUMに何が入っているか確認するための ものです。 response.write "<input type=""text"" name=""test"" value=""&=request(""num"")&"">" response.write "<input type=""HIDDEN"" name=""page_num"" value=""&request(page_num)+1&"">" このTEXTボックスはHIDDENのPAGE_NUMに何が入っているか確認するための ものです。 response.write "<input type=""text"" name=""test1"" value=""request(page_num)+1&"">" response.write "<input type=""submit"" value=""更新"">" response.write "</form>" end if ' レコードセット解放 RS.Close ' 切断 DB.Close ' オブジェクト解放 Set CMD=Nothing Set RS=Nothing Set DB=Nothing %> </body> </html> 忙しいところすいませんが、ご教授願います。 よろしくお願いします。

  • 変数のクリア

    下のようなソースで、設問 form から変数scoreを取得し、点数によって 表示する診断結果画面をふりわけています。 ところが、何回かこの診断テストをやっているうちに、6点以上のときだけ表示するつもりの sindan3.htmlしか表示されなくなって困っています。 どなたか、修正方法をご指導いただけないでしょうか。 <HTML LANG="JA"><HEAD> <script Language="JavaScript"><!-- score = 0; function GetScore(){ for (i=0; i<6; i++) { if (document.myFORM.elements[i].checked) { score += eval(document.myFORM.elements[i].value); } } if(score >= 0 && score <= 2) { window.open("sindan.html", "kekka1", ""); } else if (score >= 3 && score <= 5) { window.open("sindan2.html", "kekka2", ""); } else{ window.open("sindan3.html", "kekka3", ""); } } // --></script></HEAD> <BODY> <FORM name="myFORM">第一問:あなたは? <BR> <INPUT TYPE="RADIO" NAME="q1" ID="r1" VALUE="1">引きこもり <BR> <INPUT TYPE="RADIO" NAME="q1" VALUE="2">立てこもり <BR> <INPUT TYPE="RADIO" NAME="q1" VALUE="3">生き残り <BR><BR> 第三問:あなたは? <BR> <INPUT TYPE="RADIO" NAME="q3" ID="r3_1" VALUE="1"> <LABEL FOR="r3_1">引きこもり</LABEL> <BR> <INPUT TYPE="RADIO" NAME="q3" ID="r3_2" VALUE="2"> <LABEL FOR="r3_2">立てこもり</LABEL> <BR> <INPUT TYPE="RADIO" NAME="q3" ID="r3_3" VALUE="3"> <LABEL FOR="r3_3">ヤリヤリ・ロリロリ</LABEL> <BR><BR> <input type="button" value="診断" onClick="GetScore()"> </FORM> </BODY></HTML>