• 締切済み

プログラミング

「あなたの … 度チェック」を作成しているのですが スコアの合計点により・・・たとえば何点から何点の人はオタクですねみたいなメッセージを返すには また、表題・設問・配点 などを,外部ファイルで与える にはどうすればいいですか? <title>questionnaire</title> <script type="text/javascript"> <!-- function check() { // 各設問に対する回答について,選択された radio ボタンの // value 属性の値を合計して表示するのを作成するには? //--> </script> <h1>あなたのハムスターマニア度チェック</h1> <form name="f"> <table border> <tr> <td>ハムスターを飼ったことがある</td> <td><input type="radio" name="Q1" value="10">はい <input type="radio" name="Q1" value="0">いいえ <input type="radio" name="Q1" value="0">わからない</td> </tr> <tr> <td>ゴールデンハムスターの別名はシリアンハムスターだ</td> <td><input type="radio" name="Q2" value="10">はい <input type="radio" name="Q2" value="0">いいえ <input type="radio" name="Q2" value="0">わからない</td> </tr> <tr> <td>ハムスターの餌には,やっぱりひまわりの種だ</td> <td><input type="radio" name="Q3" value="0">はい <input type="radio" name="Q3" value="10">いいえ <input type="radio" name="Q3" value="0">わからない</td> </tr> <tr> <td>キンクマは実はゴールデンハムスターの亜種である</td> <td><input type="radio" name="Q4" value="10">はい <input type="radio" name="Q4" value="0">いいえ <input type="radio" name="Q4" value="0">わからない</td> </tr> <tr> <td>ハムスターにどんぐりを与えてはいけない</td> <td><input type="radio" name="Q5" value="10">はい <input type="radio" name="Q5" value="0">いいえ <input type="radio" name="Q5" value="0">わからない</td> </tr> <tr> <td>キャンベルは気が荒いなんて嘘だ</td> <td><input type="radio" name="Q6" value="10">はい <input type="radio" name="Q6" value="5">いいえ <input type="radio" name="Q6" value="0">わからない</td> </tr> <tr> <td>まん丸になって寝ているハムスターを見ると心が和む</td> <td><input type="radio" name="Q7" value="10">はい <input type="radio" name="Q7" value="-10">いいえ <input type="radio" name="Q7" value="0">わからない</td> </tr> <tr> <td>ほお袋がいっぱいになるまで餌をやってみたことがある</td> <td><input type="radio" name="Q8" value="10">はい <input type="radio" name="Q8" value="0">いいえ <input type="radio" name="Q8" value="0">わからない</td> </tr> <tr> <td>ハムスターが水を飲みながら居眠りするのを目撃したことがある</td> <td><input type="radio" name="Q9" value="10">はい <input type="radio" name="Q9" value="0">いいえ <input type="radio" name="Q9" value="0">わからない</td> </tr> <tr> <td>ハムスターが毛づくろいをしていて,勢いあまって仰向けに転倒するのを見たことがある</td> <td><input type="radio" name="Q10" value="10">はい <input type="radio" name="Q10" value="0">いいえ <input type="radio" name="Q10" value="0">わからない</td> </tr> </table> <input type="button" value="チェック" onclick="check();"> <input type="text" readonly name="result" size="3">点 </form>

みんなの回答

  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.2

よく見ると質問は「外部ファイルとして扱うには?」だったので またしてもとっかんで作ってみました。 いろいろな方法があるけれども参考程度にどうぞ。 ※ またしても全角スペースが入っています。 ----- data.js var DATA = {  Q1 : {   setsumon : "ハムスターを飼ったことがある",   hai    : 10,   iie    : 0,   wakaranai : 0  },    Q2 : {   setsumon : "ゴールデンハムスターの別名はシリアンハムスターだ",   hai    : 10,   iie    : 0,   wakaranai : 0  },    Q3 : {   setsumon : "ハムスターの餌には,やっぱりひまわりの種だ",   hai    : 0,   iie    : 10,   wakaranai : 0  },    Q4 : {   setsumon : "キンクマは実はゴールデンハムスターの亜種である",   hai    : 10,   iie    : 0,   wakaranai : 0  },    Q5 : {   setsumon : "ハムスターにどんぐりを与えてはいけない",   hai    : 10,   iie    : 0,   wakaranai : 0  },    Q6 : {   setsumon : "キャンベルは気が荒いなんて嘘だ",   hai    : 10,   iie    : 5,   wakaranai : 0  },    Q7 : {   setsumon : "まん丸になって寝ているハムスターを見ると心が和む",   hai    : 10,   iie    : -10,   wakaranai : 0  },    Q8 : {   setsumon : "ほお袋がいっぱいになるまで餌をやってみたことがある",   hai    : 10,   iie    : 0,   wakaranai : 0  },    Q9 : {   setsumon : "ハムスターが水を飲みながら居眠りするのを目撃したことがある",   hai    : 10,   iie    : 0,   wakaranai : 0  },    Q10 : {   setsumon : "ハムスターが毛づくろいをしていて,勢いあまって仰向けに転倒するのを見たことがある",   hai    : 10,   iie    : 0,   wakaranai : 0  } } ----- html <title>questionnaire</title> <script src="data.js" type="text/javascript"></script> <script type="text/javascript"> function tableBuilder (array) {  for (var i = 0; i < array.length; i++) {   var data = eval("DATA." + array[i]);   document.write("<tr>");   document.write("<td>" + data.setsumon + "</td>");   document.write("<td><input type='radio' name='" + array[i] + "' value='" + data.hai + "'>はい");   document.write("<input type='radio' name='" + array[i] + "' value='" + data.iie + "'>いいえ");   document.write("<input type='radio' name='" + array[i] + "' value='" + data.wakaranai + "'>わからない</td>");   document.write("</tr>");  } } function check() {    var QUESTION_NUM = list.length;  var score = 0;  var getRadioValue = function (nodelist) {   for (var i = 0; i < nodelist.length; i++) {    if (nodelist[i].checked) {     return nodelist[i].value;    }   }   return 0;  }  for (var i = 1; i <= QUESTION_NUM; i++) {   var nodelist = eval("document.f.Q" + i);   score = score + parseInt(getRadioValue(nodelist));  }  document.f.result.value = score;  if (score <= 20) alert("あなたは凡人です");  if (20 < score && score <=80 ) alert("あなたはオタクですね");  if (80 < score) alert("あなたは鬼畜ですね"); } </script> <h1>あなたのハムスターマニア度チェック</h1> <form name="f"> <table border>  <script type="text/javascript">   var list = new Array("Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","Q10");   QUESTION_NUM = list.length;   tableBuilder(list);  </script> </table> <input type="button" value="チェック" onclick="check();"> <input type="text" readonly name="result" size="3">点 </form> しかしjsファイルはキャッシュされるので src属性の後ろにシステム日付を入れるなどまだまだやるべきことがあるんですけどね。 眠くなってきたのでそろそろ寝ます。 余談ですが、htmlファイル直に配点を書くとソースを表示すれば 答えは丸見えになるので普通はサーバ側でやるんですけどね。

  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.1

>> スコアの合計点により・・・たとえば何点から何点の人はオタクですねみたいなメッセージを返すには ↓とっかんで作ったものだが ※ 整形のため全角スペースが入っています function check() {  var QUESTION_NUM = 10;  var score = 0;  var getRadioValue = function (nodelist) {   for (var i = 0; i < nodelist.length; i++) {    if (nodelist[i].checked) {     return nodelist[i].value;    }   }   return 0;  }  for (var i = 1; i <= QUESTION_NUM; i++) {   var nodelist = eval("document.f.Q" + i);   score = score + parseInt(getRadioValue(nodelist));  }  document.f.result.value = score;  if (score <= 20) alert("あなたは凡人です");  if (20 < score && score <=80 ) alert("あなたはオタクですね");  if (80 < score) alert("あなたは鬼畜ですね"); } >> 表題・設問・配点 などを, ・表題 <title>要素の内容を変更するという意味なら document.titleで値の取得、設定が可能。 ・設問 設問を書いた<td>タグにid属性をつけるなりなんなりでノードを限定できるようにし、 あとはinnerHTMLを書き換えるようにすれば良い。 ・配点 .valueで変更するだけ。

jewel1007
質問者

お礼

ありがとうございます!! これでわかりました!! 実行できたとき感動しました!!

関連するQ&A

  • ラジオボタンを一括で操作する方法を教えてください。javascript

    下記のようにフォームがあります。 チェックボックスをクリックして始めて、 同列のラジオボタンが選択できるようにしたいと考えております。 現在は、質問1のみですが質問の数がその下に増えていくと考えた場合、(例えば質問10まであると仮定して考えてください。)どのようにスクリプトを書いていけば、スマートになるかお知恵を貸していただけませんでしょうか? よろしくお願いいたします。 <form name="form1"> <table><tr> <th><input type="checkbox" name="q1_1" value="" onClick="quetion()">質問1</th> <td><input type="radio" name="q1_1a" value="a" disabled ></td> <td><input type="radio" name="q1_1a" value="b" disabled ></td> <td><input type="radio" name="q1_1a" value="c" disabled ></td> </table></form>

  • 教えてください

    <form action="chackbox.php" method="post"> <table> <tr> <th>1</th><th>2</th><th>3</th><th>4</th> </tr> <tr> <td><input type="radio" name="R1" value="1"></td> <td><input type="radio" name="R1" value="2"></td> <td><input type="radio" name="R1" value="3"></td> <td><input type="radio" name="R1" value="4"></td> </tr> <tr> <td><input type="radio" name="R2" value="1"></td> <td><input type="radio" name="R2" value="2"></td> <td><input type="radio" name="R2" value="3"></td> <td><input type="radio" name="R2" value="4"></td> </tr> <tr> <td><input type="radio" name="R3" value="1"></td> <td><input type="radio" name="R3" value="2"></td> <td><input type="radio" name="R3" value="3"></td> <td><input type="radio" name="R3" value="4"></td> </tr> <tr> <td><input type="radio" name="R4" value="1"></td> <td><input type="radio" name="R4" value="2"></td> <td><input type="radio" name="R4" value="3"></td> <td><input type="radio" name="R4" value="4"></td> </tr> <tr> <td><input type="radio" name="R5" value="1"></td> <td><input type="radio" name="R5" value="2"></td> <td><input type="radio" name="R5" value="3"></td> <td><input type="radio" name="R5" value="4"></td> </tr> <tr> <td><input type="radio" name="R6" value="1"></td> <td><input type="radio" name="R6" value="2"></td> <td><input type="radio" name="R6" value="3"></td> <td><input type="radio" name="R6" value="4"></td> </tr> <tr> <td><input type="radio" name="R7" value="1"></td> <td><input type="radio" name="R7" value="2"></td> <td><input type="radio" name="R7" value="3"></td> <td><input type="radio" name="R7" value="4"></td> </tr> <tr> <td><input type="radio" name="R8" value="1"></td> <td><input type="radio" name="R8" value="2"></td> <td><input type="radio" name="R8" value="3"></td> <td><input type="radio" name="R8" value="4"></td> </tr> <tr> <td><input type="radio" name="R9" value="1"></td> <td><input type="radio" name="R9" value="2"></td> <td><input type="radio" name="R9" value="3"></td> <td><input type="radio" name="R9" value="4"></td> </tr> <tr> <td><input type="radio" name="R10" value="1"></td> <td><input type="radio" name="R10" value="2"></td> <td><input type="radio" name="R10" value="3"></td> <td><input type="radio" name="R10" value="4"></td> </tr> </table> <input type="submit" value="点数の計算、タイプを決定します"> ここのsubmitボタンを押したときに、nameのR1+R5+R10のvalue1から4の合計の足し算をした後に11を引く処理をしたいです。ここが間違っていたら、JavaScriptやPHP、どちらでもいいんで、処理のコードを教えてくださいお願いします ▼ 点数 =11-(設問R1+R5+R10であなたが丸をつけた数字の合計点) (  点)

  • ラジオボタン選択で「複数ラジオボタン」をアクティブにするには?

    ■下記サンプルソースのラジオボタンの「はい」を選択すると複数のラジオボタンがアクティブになるJavaScriptがわからず困っております。教えて頂けないでしょうか。 (ページ開いた際は「いいえ checked」で複数ラジオボタンはグレーで選択無効) 用途はアンケートフォームです。 可能であればシンプルなソースで「最新のWinIE、MacSafari」に対応していると非常に助かります。先輩方よろしくお願いします。 <form name="form2" method="post" action=""> <table> <tr> <td>■「はい」を選択すると、ラジオボタン(カテゴリー1~4)がアクティブになる。 </td> </tr> <tr> <td> <input name="radiobutton" type="radio" value="radiobutton">はい <input name="radiobutton" type="radio" value="radiobutton" checked>いいえ </td> </tr> <tr> <td> <input name="radiobutton" type="radio" value="radiobutton">カテゴリー1 <input name="radiobutton" type="radio" value="radiobutton">カテゴリー2 <input name="radiobutton" type="radio" value="radiobutton">カテゴリー3 <input name="radiobutton" type="radio" value="radiobutton">カテゴリー4 </td> </tr> </table> </form>

  • ラジオボタンでの表示の切替方法

    2つのラジオボタンの切替によって、表示の切替を行いたいです。 例えば、Aを選択すると(1)の入力フォームが表示され、Bを選択すると(2)が表示したいです。初期表示はAが選択された時と同じ内容となります。 <table align="center" border="0" cellpadding="0" cellspacing="0"> <tr><td><form name="Quick1"> <tr><td>選択</td> <td> <input type="radio" name="A" value="1" checked>A  <input type="radio" name="B" value="2">B  </td></tr> <tr> <td>(1)</td> <td> <input type="text" size="6" maxlength="5" name="text1" value="">- <input type="text" size="6" maxlength="5" name="text2" value="">- <input type="text" size="6" maxlength="5" name="text3" value=""> </td></tr> <tr> <td>(2)</td> <td> <input type="text" name="text7" size="43" value=""> </td></tr> </table></form></td></tr></table> すみませんが、よろしくお願い致します。

  • 選択したテーブルのセルの背景色を変更させる方法

    こんばんは。 現在クイズをcgiで作っており(20問程度)、自分が選択した答えの背景を変化させたいと考えております。 問題はテーブル内に収めています。 ↓はcgi内で作成している部分のテーブルサンプルです <form action="./test.cgi" method="post"> <table width="520" border="1" cellpadding="5" cellspacing="0" class="check" align="right"> <tr> <td width="420" align="center"><b>$title</b></td> <td width="100" colspan="2" align="center"><b>回答欄</b></td> </tr> <tr> <td width="420">1.$q3</td> <td width="50"><input type="radio" name="3" value="1">$a31</td> <td width="50"><input type="radio" name="3" value="2">$a32</td> </tr> <tr> <td width="420">2.$q4</td> <td width="50"><input type="radio" name="4" value="1">$a41</td> <td width="50"><input type="radio" name="4" value="2">$a42</td> </tr> <tr> <td width="420">3.$q5</td> <td width="50"><input type="radio" name="5" value="1">$a51</td> <td width="50"><input type="radio" name="5" value="2">$a52</td> </tr> <tr> <td width="10"></td> <td width="540" align="center"> <input type="hidden" name="action" value="result"> <input type="image" src=".././img/diagnose.gif" border="0"> </td> </tr> </table> </form> Java Scriptでテーブルのセルにidをふればできると聞き、初心者ながら色々試してみたものの、なかなかうまくいきません。 どなたかご教授お願いいたします。

  • メールフォームのラジオボタンフィールドの件

    ホームページメールフォーム作成でご質問しました。 ラジオボタンとチェックボックスのフィールドで、その他項目を設けてテキストフィールドを作っているます。 このテキストフィールドにもラジオボタンまたは、チェックボックスのチェックを行えるようにできないでしょうか。 ○あああ ○いいい ○ううう ○えええ ○その他 □(ここにテキスト入力フィールド) ※javascriptを作る必要があるでしょうか。 下記のソースが、現状です。 <tr><td class="item_name">設問</td> <td class="item_form"> <table border="0" cellpadding="0" cellspacing="0"> <tr><td><input name="設問ABC" type="radio" value="Webサイト1" class="radio" id="toi2" /></td> <td valign="bottom"><label for="toi2">Webサイト1</label></td></tr> <tr><td><input name="設問ABC" type="radio" value="Webサイト22" class="radio" id="toi2" /></td> <td valign="bottom"><label for="toi2">Webサイト22</label></td></tr> <tr><td><input name="設問ABC" type="radio" value="Webサイト333" class="radio" id="toi2" /></td> <td valign="bottom"><label for="toi2">Webサイト333</label></td></tr> <tr><td><input name="設問ABC" type="radio" value="Webサイト555" class="radio" id="toi2" /></td> <td valign="bottom"><label for="toi2">Webサイト555</label></td></tr> </table> <div>その他:<input type="text" name="設問ABC" style="width:280px" /></div> </td></tr>

  • フォームで入力項目を全て別の確認画面に出したい

    JavaScriptでフォームを作成しています。 入力項目を別の確認画面に出したいのですが 組み合わせている内に、わからなくなってしまいました。どうかお助けください。(>_<) チェックボックスの所は、3つ以上チェックできないようにしてあります。 1.別ウィンドウ確認画面が出て確認する 2.OKならメールアドレスに送信&ありがとうございましたページへ(確認画面は閉じる) のようにしたいのですが、よろしくお願い致します。m(_ _)m ※尚、初心者の為何か失礼があったらすみません。 スクリプトでは足りない個所があるので、htmlを載せさせて頂きました。 ************************************************ <form name="myFORM" onClick="return check()"> <table> <tr><td> <table> <tr> <td> <input type="radio" name="plan" value="A"> A.</font></strong></div> </td> </tr> </table> <br> <table> <tr> <td> <input type="radio" name="plan" value="B"> B. </td> </tr> </table> <br> <table> <tr> <td>あ</td> <td> <input name="CB1" type="checkbox" id="CB12" value="あ"> </td> </tr> </table> チェックボックス全10項目中チェック3つまで<br> <br> *印は必須項目です<br> <table> <tr> <td>申込み内容</td> </tr> <tr> <td>会社名*</td> <td><input type="text" name="jimusho_name" size="30"></td> </tr> </table> テキストフォーム全9項目<br> <p>&nbsp; <input name="button" type="button" onClick="outdata();" value="送 信"> <input name="reset" type="reset" value="キャンセル">

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

    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>

  • alertが表示されないのです。

    SQLサーバーから検索して情報を取り出す設定でフォームを作りました。 性別のラジオボタンを選択せず、検索ボタンを押すとalertがでるようにしたいのですが出てきません。見ていただけませんか?(一部省略しています) <html> <head> <script language="JavaScript"> <!-- function afSubmit(){ if(optSex[0]=false and optSex[1]=false and optSex[2]=false); { alert("性別を選択してください。"); return false; } } //--> </script> </head> <body> <form name="frmEnq" action="kensaku2.asp" method="post" onSubmit="JavaScript:return afSubmit();"> <center><table border="5" width="400" > <tr bgcolor="#ffcc66"> <td colspan="2"></td> </tr> <tr> <td>■設問1■</td> <td> <select name="lstANQ1"> <option value=0>全件 </td> </tr> <tr> <td>■設問2■</td> <td> <select name="lstANQ2"> <option value=0>全件 </td> </tr> <tr> <td>■性 別■</td> <td> <input type="radio" name="optSex" value=0>全件 <input type="radio" name="optSex" value=1>男性 <input type="radio" name="optSex" value=2>女性 </td> </tr> <tr> <td>■年 齢■</td> <td> <select name="lstAge"> <option value=0>全件 </td> </tr> <tr> <td colspan="2"><center> <input type="submit" value="検索"> <input type="reset" value="キャンセル"> </center></td> </tr> </table></center> </body> </html>

  • tableタグとformタグの組み合わせ

    tableタグとformタグの組み合わせでどのように記述すれば、構文上正しいのでしょうか? 私は下のパターンで書いておりますが、間違いでしたら早めに改めたいので お聞きしました。 <table> <form> <input type="hidden" name="a" value="1"> <tr> <td> <input type="text" name="b" value=""> </td> </tr> <tr> <td> <input type="submit" value="OK" value=""> </td> </tr> </fomr> </table>

    • ベストアンサー
    • HTML