0

私はPHPを使ってこれをやっています。

私はいくつかの基本的なクイズ アプリケーションを実行しており、バックエンドがあります。私のバックエンドでは、学生が答えるクイズを設定しています。私のインターフェースの1つはこのようなものです。

ここに画像の説明を入力

ユーザーがボックスをチェックした場合、1950 が答えであることを意味します。1950年が質問の答えであると判断するには、データベース内のその1つをどのように処理すればよいでしょうか.

私のデータベースはこんな感じです。

tbl_choices
Id,Choice,isAnswer

理想的には、このように保管されます。

tbl_choices
ID         CHOICE      isAnswer
001         1900          0
002         1800          0
003         1950          1
004         1850          0

ここでの私の質問は、ユーザーがチェックボックスをオンにして、そのすぐ横にある textinput の値がisAnswerasになるときに、ある意味でどのようにコーディングするか1です。

追加情報:ユーザーがその+ボタンをクリックすると新しいテキスト入力が追加され、ユーザーが-ボタンをクリックするとテキスト入力が削除されますが、すべてカバーされています。

選択肢は動的であり、変更されます。上記で示したものは単なる例です。

PS: タイトルで申し訳ありません。この種の質問のタイトルがわかりません :-)

あなたの助けは非常に高く評価され、報われるでしょう!

4

4 に答える 4

3

次のようにhtmlを試すことができます:

<input type="checkbox" value="1900" name="answer1[]">
<input type="text" value="1900" name="answer2[]" />
<input type="checkbox" value="1800" name="answer1[]">
<input type="text" value="1800" name="answer2[]" />
<input type="checkbox" value="1950" name="answer1[]">
<input type="text" value="1950" name="answer2[]" />
<input type="checkbox" value="1850" name="answer1[]">
<input type="text" value="1850" name="answer2[]" />

次に、php コードを使用します。

foreach($_POST['answer2'] as $v){


    if(in_array($v, $_POST['answer1'])) {
        $s = 1;
    }else
     $s = 0;
     $sql = "INSERT INTO table VALUES(null, $v, $s)";
}

また、クリックして、チェックボックスとテキストフィールドの両方の値を更新します

于 2012-11-23T07:08:18.560 に答える
1

一般に、情報を送信するときにチェックボックスを配列として使用できます。チェックボックスに次のような配列として名前を付けるだけです

<input type="checkbox" value="1900" name="answer1[]">
<input type="checkbox" value="1800" name="answer1[]">
<input type="checkbox" value="1950" name="answer1[]">
<input type="checkbox" value="1850" name="answer1[]">

次に、サーバー側$_POST["answer1"]で配列として処理し、可能な回答を循環させます。次のようにします。

if (is_array($_POST["answer1"]))
{
  foreach($_POST["answer1"] as $answer)
  {
    // insert into database here
  }

}

重要: これは、ユーザーが実際に選択したもののみを表示します。オプションをクリックしないと、配列の一部にはなりません。

于 2012-11-23T06:31:00.087 に答える
0

複数のテーブルを用意することは理にかなっていると思います。1 つは選択肢を含む質問用で、もう 1 つはフィールド id、choice_id を含む回答用です。そうしないと、特に多くの学生が同じ質問に答えるときに、質問を生成するのがはるかに難しくなりますか?

于 2012-11-23T06:30:13.830 に答える
-2

もう1つ、質問の回答を追加し、+および-ボタンに基づいて行を追加および削除することができます。

そのためのコード:

<script type="text/javascript">
    $(document).ready(function() {
        $("#plus").click(function() {
           $('#mytable2 tbody>tr:last').clone(true).
              insertAfter('#mytable2 tbody>tr:last');
           $('#mytable2 tbody>tr:last #st').val('');
           $('#mytable2 tbody>tr:last #newst').val('');
           $('#mytable2 tbody>tr:last #plus').val('+');
           return false;
        });
     });

詳細については、次のリンクを参照してください: ボタンのクリックで行を追加

于 2012-11-23T06:43:12.967 に答える