如果选中复选框,如何存储数据

时间:2012-11-23 06:17:37

标签: php

我正在使用PHP做这个。

我正在做一些基本的测验申请,它有一个后端。在我的后端,我正在设置一个测验供学生回答。我的一个界面是这样的。

enter image description here

如果用户选中了该框,则表示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值为isAnswer1,我将如何对其进行编码。

只是一个额外的信息:当用户点击+按钮时,它会添加一个新的文本输入,如果用户点击-按钮,它将删除一个文本输入,但我得到了全部覆盖。

这些选择是动态的,它会发生变化,我刚刚向你展示的只是一个例子。

P.S:对不起标题,我不知道这类问题的标题是什么: - )

您的帮助将受到高度赞赏和奖励!

4 个答案:

答案 0 :(得分: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)";
}

同时点击复选框和文本字段的更新值

答案 1 :(得分: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
  }

}

重要:这只会显示用户实际选择的内容,如果没有点击选项那么它就不会成为数组的一部分

答案 2 :(得分:0)

我认为拥有多个表是有意义的,一个用于选择问题,一个用于带有字段id,choice_id的答案。否则它会使问题产生更加困难,特别是当一些学生回答同样的问题时?

答案 3 :(得分:-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