在数据库中插入带变量名称的单选按钮的值

时间:2016-11-07 21:07:07

标签: php html codeigniter

我想在数据库中插入测验应用程序的答案。我正在使用Codeigniter。测验问题是随机生成的。向用户显示10个问题。以下是我的代码:

视图

    <div class="col-lg-8">
        <table class="table" style="width: 100%;">
            <?php 
            $i = 1;            
            echo form_open('Menu/submit_ans', array('name' => 'quiz'));
            foreach ($quiz_array as $q){
            ?>    
            <td colspan="2"style="background-color: #337ab7;color:white;"> <h4>Question No. <?php echo $i?> </h4></td>
            <tr>
            <td colspan="2"><?php echo $q->ques;?></td>
            <input hidden name="qid[]" type="text" value="<?php echo $q->qid;?>">
            <input hidden name="uid[]" type="text" value="<?php echo $user['id'];?>">
            </tr>
            <tr>
            <td><?php echo $q->ans_1;?></td>
            <td><input type="radio" name="ans[<?php print $i; ?>]" value="1"></td>
            </tr>
            <tr>
            <td><?php echo $q->ans_2;?></td>
            <td><input type="radio" name="ans[<?php print $i; ?>]" value="2"></td>
            </tr>
            <tr>
            <td><?php echo $q->ans_3;?></td>
            <td><input type="radio" name="ans[<?php print $i; ?>]" value="3"></td>
            </tr>
            <tr>
            <td><?php echo $q->ans_4;?></td>
            <td><input type="radio" name="ans[<?php print $i; ?>]" value="4"></td>
            </tr>


            <?php 
                $i++;
            }
            ?>
        </table>
        <center><button class="btn btn-success" type="submit">Submit!</button></a></center>
    </div>
            <?php echo form_close();?>

控制器:

function submit_ans(){
    $data = array(
    $q_array = $_POST['qid'],
    $u_array = $_POST['uid'],
    $ans_array = $_POST['ans']
    );
    $this->load->model('MyModel');
    $this->MyModel->insert_ans($data);
}

模特

function insert_ans($ data){

foreach($data as $answer) {
    var_dump($answer);

    }

}

vardump结果

//问题ID

array (size=12)
  0 => string '4' (length=1)
  1 => string '12' (length=2)
  2 => string '3' (length=1)
  3 => string '6' (length=1)
  4 => string '11' (length=2)
  5 => string '7' (length=1)
  6 => string '10' (length=2)
  7 => string '2' (length=1)
  8 => string '8' (length=1)
  9 => string '1' (length=1)
  10 => string '5' (length=1)
  11 => string '9' (length=1)

//用户名

array (size=12)
  0 => string '1' (length=1)
  1 => string '1' (length=1)
  2 => string '1' (length=1)
  3 => string '1' (length=1)
  4 => string '1' (length=1)
  5 => string '1' (length=1)
  6 => string '1' (length=1)
  7 => string '1' (length=1)
  8 => string '1' (length=1)
  9 => string '1' (length=1)
  10 => string '1' (length=1)
  11 => string '1' (length=1)

//获取答案

array (size=12)
  0 => string '1' (length=1)
  1 => string '1' (length=1)
  2 => string '3' (length=1)
  3 => string '4' (length=1)
  4 => string '2' (length=1)
  5 => string '2' (length=1)
  6 => string '3' (length=1)
  7 => string '3' (length=1)
  8 => string '4' (length=1)
  9 => string '3' (length=1)
  10 => string '2' (length=1)
  11 => string '3' (length=1)

我从问题ID到答案得到了我想要的所有结果。如何在数据库中插入此表?

以下是我的表格由4列组成:

ans_id - 自动增量 user_id - 回答问题的用户 q_id - 问题回答了 ans_att - 答案

2 个答案:

答案 0 :(得分:0)

尝试将广播名称设置为数组:

<input type="radio" name="asw[]" value="1"></td>
<input type="radio" name="asw[]" value="1"></td>

并且,对于你的数据库中的include,试试这个php:

$asw = $_POST['asw'];

foreach($asw as $answer){
mysql_query("insert into table_name (col_name) values ('". $aswer ."')");
}

这是你想要的吗?

答案 1 :(得分:0)

您不能拥有随机名称,因为最后这个名称会插入到您的数据中,因此您可以尝试修改名称,随机值和ID。尝试使用java脚本函数 “type =”radio“name =”as“value =”“&gt; 但是,请你把你的桌子告诉我们更清楚