学習支援システムの開発と問題表示の問題について

このQ&Aのポイント
  • 学習支援システムの開発において、問題の表示方法に課題があります。問題を一問ごとに表示する際に、解答選択肢をラジオボタンとして表示すると、全ての問題の選択肢にラジオボタンが機能してしまい、一問一問の解答ができません。
  • また、問題をループで表示しているために、どのように正解か不正解かをチェックすればいいのか悩んでいます。
  • 最終的には学習履歴を残せるような学習支援システムを作りたいと思っています。
回答を見る
  • ベストアンサー

学習支援システムの開発

OSはRedhatLinux7.1 Apache_1.3.26 php-4.2.3 mysql-3.23.52 を使っています。 問題を解いて、正解不正解を表示でき、最終的には学習履歴を残せるような学習支援システムを作りたいと思っています。 問題を一問ごと表示と全問表示で選択して表示することができるようにしました。 一問ごと表示では問題をうまく表示できるようになり、正解不正解の表示までできるようになりました。 しかし、全問表示の時に問題をループを使って表示させているのですが、解答選択肢をラジオボタンにして表示するとすべて問題の選択肢にラジオボタンとして機能してしまって一問一問で解答することができません。(すべての問題の選択肢から一つの答えしか選べないんです。) また、問題をループで表示しているために、どのように正解か不正解かをチェックすればいいのか悩んでいます。 どうかアドバイスお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • Paul_xxx
  • ベストアンサー率56% (27/48)
回答No.1

neme属性を同じにしていませんか? 各問題ごとに表示するラジオボタンで同じ名前をつけて下さい 例えば問題1には name="question1" という名前で3つの選択肢があるなら value="1" value="2" value="3" とします。 PHP側では受け取るときに $_POST["question1"] もしくは $_GET["question1"] に値が入ってきます。 必然的にループの問題も解決すると思います。 プログラミングというよりHTMLの知識ですね ちなみに name="question[1]" などのように名前をつけるとPHP側では配列で受け取ることができますよ

emitika
質問者

お礼

ありがとうございました。解決しました。

関連するQ&A

  • 切捨ての仕方について

    OSはRedhatLinux7.1 Apache_1.3.26 php-4.2.3 mysql-3.23.52 を使っています。 解答数と正解数で正答率を求めたいのですが、切り捨てはどのようにすればいいのですか? 今は小数ででてきます。 $seitouritu=($seikai/$mondai)*100; としています。 アドバイスお願いします。

    • ベストアンサー
    • PHP
  • なぜか小さなスペースが入ってしまいます。

    OSはRedhatLinux7.1 Apache_1.3.26 php-4.2.3 mysql-3.23.52 を使っています。 問題を解いて正解したら「正解です。」不正解なら「不正解です。」と表示させたいのですが、 正解の答えをクリックしても不正解になります。 原因を調べてみたのですが、 前ページから送られてくる答え($answer)は"12"となっているけど、 前ページで解いた問題の問題番号($pid)から正解($ca)をsqlで呼び出して表示すると"12 "となってしまっていました。 "12"と"12 " この小さなスペースのせいで$ca==$answerとならないのではないかと考えています。 なぜこのような小さなスペース" "が入ってしまうのでしょうか。 まだプログラムを始めたばかりです。 どうかアドバイスお願いします。 $con=mysql_connect("localhost","root"); mysql_select_db("webseminar"); $sql = "select ca from tbl_prob where pid='$pid'"; $result = mysql_query($sql); $data = mysql_fetch_object($result); $ca = $data->ca; print("あなたの解答は\"$answer\"です。<br>"); print("正解は\"$ca\"でした。"); if($ca==$answer) print("正解です。"); else print("不正解です。"); 『結果』 あなたの解答は"256"です。 正解は"256 "でした。不正解です。

    • 締切済み
    • PHP
  • 一級建築施工管理試験の内容

    一級建築施工管理試験の内容なのですが、各科目によって午前問題15問中12問の解答、5問中すべて解答、午後25問のうち全問解答、12問中8問解答とありますが、この解答数以上でないと合格しないのですか?25問すべて解答だと25問全部正解でなければいけないのですか?1問でも欠けてしまったらほかの科目が良かっても点数を補えないのでしょうか。各科目によっての最低ラインがありますか? 勉強している段階では全問解答、全問正解を目指しています。(無理なの解ってながら、、、)

  • excel vba 非表示のシートに入力するには?

    エクセルで簡単な学習ツールを作っています。 シートは「問題」シートと「解答」シートの2シートがあり、「解答」シートは非表示になっています。 「問題」シートで解答者の名前をプルダウンで選択し、正解だと思う解答のラジオボタンを選択し、 最後に解答ボタンを押すと、入力した内容が非表示の「解答」シートに反映するような仕組みに したいのですが、どうすればうまくいきますか? 現在 Private Sub workbook_open() Sheets("問題").Select Range("K1") = 0 Range("K2") = 0 Sheets("解答").Select Range("B2") = 0 Range("C2") = 0 Sheets("問題").Select Range("B2") = "" End Sub と入力していますが、「解答」シートが非表示になっているためデバックになります。 非表示の「解答」シートに入力内容が反映する方法を教えてください。

  • JavaScriptについて

    JavaScriptについて JavaScriptで、ITパスポートの試験問題ページみたいなものが作りたいですが、記述の仕方がわかりません。 問題形式は、問1・問2・問3・・・と続き、解答は、すべてアイウエのどれかで、ラジオボタンで選んでいって、一番下の解答ボタンをクリックしたら、アラートが出てきて、次のような表示の仕方になるように作りたいです。 「正解数は○○問です。改行 合格/不合格です。」 なお、○○は、点数で、これは、各問の正解したものを合計していって、合格/不合格は、正解数が、正解数/総問題数が、60%を超えていたら、合格。そうでなければ、不合格と表示するものです。 そして、リセットボタンをクリックしたら、すべてのラジオボタンのチェックをはずすようにしたいです。そして、ラジオボタンは、各問1つに対して、1つのみ選べれるようにしてほしいです。 そして、不合格なら、アラートをもうひとつ表示したいです。内容は、「もう一度挑戦しますか?改行 挑戦するなら、OKをクリックしてください。」 そしてOKをクリックしたら、リセットし、キャンセルしたら、チャックデータはそのままにしておく。 上記のようなことは、可能なのでしょうか? 可能なら、お早めにご解答ください。 不可能なら、何がダメなのか教えてください。お願いします。

  • 4択クイズの解答について悩んでいます(涙)

    現在私はVB2005で4択のクイズ形式のプログラムを作成しています。 目標は「300問の問題を作成しそのなかからランダムに100問を出題し全問回答を終えたらその結果を表示する」というものを作ることです。 データセットに問題、解答群などを格納しています。 それをフォームで表示してラジオボタンで4択のなかから正解と思うものを1つ選びボタンをクリックして次の問題へ移行する・・・というような流れのプログラムです。 今壁にぶつかっているのが「問題一つ一つの回答をどのように保持し、どのように結果表示すればいいのか」というところなのです。 当方VBは初心者でなかなか前に進めず悩んでいます。 知恵をかしてください。どうかよろしくお願いしますm(_ _)m

  • わざと0点を取ってきます

    小学校6年生の一人息子がおります 最近、学校のテストでわざと0点を取るようになりました 解答欄をずらして別の問題の解答を書き込み、全問不正解で0点ですが、ずらして書いた解答は全問正解しております なぜこのようなことをするのか尋ねましたが、いつもはぐらかされ本心は聞き出せていません 親として、今後どのようにすべきでしょうか?

  • どんな学習をすればいいのでしょうか?

    ウェブサイトをキレイに便利で実のあるモノを 作りたいのですが、勉強はどうすればいいでしょうか? Java,PHP,MySQL(maria),tomcat,Apache2,JavaScript XAMPPというのもありますね。 1行目の実のあるというのは、ボク個人の問題ですけど、 後、Cが付くものは割愛して、何を学べばいいと 思いますか? LINUXは20年ほど、やっておりますが、全くジツリキが 付きません。でも教材は揃っているのです。 のんびり、やっていきます。 素晴らしいウェブサイトを作るにはどんな学習が必要だと 思いますか? ご多忙中恐れ入ります。 ご回答のほど、宜しくお願い申し上げます。

  • iPhoneのアプリ開発についてお伺い致します。

    Xcodeの実装をお伺いしたいのですが,あるアプリ開発の本を参考にして、クイズアプリをつくりました。クイズの問題、選択肢のデータファイルはテキストファイルでResourceに作成します。問題文をテキストビューに、選択肢をボタンに記載し、選択肢のボタンを押す事で回答させるシステムです。正解のボタンをタップすると、ボタンの文字の先頭に○を、不正解だと×を表示するのですが、これに、不正解時に正解のボタンの先頭に★等の印をつける為のソースコードをご教示いただければ幸いです。因に、テキストファイルには、1行目;問題文、2行目;正解の選択肢、3~5行目;不正解の選択肢、となっております。 //選択肢のボタンがタップされたときの処理 - (IBAction)answer:(id)sender { //正解か不正解かを見せる間、タップできない様に、ボタンを無効表示に変更する。 self.answerButton1.enabled = NO; self.answerButton2.enabled = NO; self.answerButton3.enabled = NO; self.answerButton4.enabled = NO; //タップされたボタンのラベルを取得する NSString *str = [[sender titleLabel] text]; //出題された問題の情報を取得する QuizItem *item = [self.quiz.usedQuizItems lastObject]; //正解か判定する if ([item checkIsRightAnswer:str]) { //正解なので、○を先頭に追加する [sender setTitle:[NSString stringWithFormat:@"○ %@", str] forState:UIControlStateNormal]; //効果音を再生する AudioServicesPlaySystemSound(_rightSound); } else { //不正解なので×を先頭に追加する [sender setTitle:[NSString stringWithFormat:@"× %@", str] forState:UIControlStateNormal]; }

    • 締切済み
    • Mac
  • iPhoneのアプリ開発についてお伺い致します。

    Xcodeの実装をお伺いしたいのですが,あるアプリ開発の本を参考にして、クイズアプリをつくりました。クイズの問題、選択肢のデータファイルはテキストファイルでResourceに作成します。問題文をテキストビューに、選択肢をボタンに記載し、選択肢のボタンを押す事で回答させるシステムです。正解のボタンをタップすると、ボタンの文字の先頭に○を、不正解だと×を表示するのですが、これに、不正解時に正解のボタンの先頭に★等の印をつける為のソースコードをご教示いただければ幸いです。因に、テキストファイルには、1行目;問題文、2行目;正解の選択肢、3~5行目;不正解の選択肢、となっております。 //選択肢のボタンがタップされたときの処理 - (IBAction)answer:(id)sender { //正解か不正解かを見せる間、タップできない様に、ボタンを無効表示に変更する。 self.answerButton1.enabled = NO; self.answerButton2.enabled = NO; self.answerButton3.enabled = NO; self.answerButton4.enabled = NO; //タップされたボタンのラベルを取得する NSString *str = [[sender titleLabel] text]; //出題された問題の情報を取得する QuizItem *item = [self.quiz.usedQuizItems lastObject]; //正解か判定する if ([item checkIsRightAnswer:str]) { //正解なので、○を先頭に追加する [sender setTitle:[NSString stringWithFormat:@"○ %@", str] forState:UIControlStateNormal]; //効果音を再生する AudioServicesPlaySystemSound(_rightSound); } else { //不正解なので×を先頭に追加する [sender setTitle:[NSString stringWithFormat:@"× %@", str] forState:UIControlStateNormal]; }