0

我正在使用 PHP 做这个。

我正在做一些基本的测验应用程序,它有一个后端。在我的后端,我正在设置一个测验让学生回答。我的一个界面是这样的。

在此处输入图像描述

如果用户选中该框,则表示 1950 是答案。我将如何处理我的数据库中的那个,以确定 1950 年是问题的答案。

我的数据库是这样的。

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

我认为有多个表格是有意义的,一张用于带有选项的问题,然后一张用于带有字段 id、choice_id 的答案。否则,它会使生成问题变得更加困难,尤其是当许多学生回答同一个问题时?

于 2012-11-23T06:30:13.830 回答
-2

还有一件事,您可以在问题的答案中加起来,根据 + 和 - 按钮添加行和删除行。

代码:

<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;
        });
     });

有关更多详细信息,您可以参考以下链接: Add Row on Button click

于 2012-11-23T06:43:12.967 回答