Javascript 有没有办法在表的一个字段中插入多个数据,而一个特定的数据在其字段中具有不同的值?共点火器

Javascript 有没有办法在表的一个字段中插入多个数据,而一个特定的数据在其字段中具有不同的值?共点火器,javascript,php,mysql,ajax,codeigniter,Javascript,Php,Mysql,Ajax,Codeigniter,我正在制作一个测验应用程序,其中一个问题必须是正确的。我已经可以在我的表中插入多个数据,问题是,我有一个特定的选择或答案,必须与其他选择或答案不同 应用程序的屏幕截图和我想做的事情 这是我的桌子的样子 表格答案 id | answer | correct 1 | Apple | 1 2 | Mango | 0 3 | Melon | 0 1表示答案正确,0表示答案不正确 这是我的模型 我试图获取单选按钮值,即1值,并将其插入数据库,但结果是,如果我添加另一

我正在制作一个测验应用程序,其中一个问题必须是正确的。我已经可以在我的表中插入多个数据,问题是,我有一个特定的选择或答案,必须与其他选择或答案不同

应用程序的屏幕截图和我想做的事情

这是我的桌子的样子

表格答案

id | answer | correct
 1 |  Apple |     1
 2 |  Mango |     0
 3 |  Melon |     0
1表示答案正确,0表示答案不正确

这是我的模型

我试图获取单选按钮值,即
1
,并将其插入数据库,但结果是,如果我添加另一个数据或多个数据。索引0或第一个数据是唯一可以插入的数据。我无法选择我可以检查的单选按钮只有第一个按钮我可以检查

我不能将
番茄
葡萄
作为我的答案,也不能将其作为值1,只作为橙色或第一个添加的数据

查看

这是我的单选按钮

<div class="form-check">
 <input class="form-check-input" type="radio" name="checkChoice[]" id="checkChoice" value="1" checked  />
    <label class="form-check-label" for="exampleRadios1">
        Make this as an Answer
    </label>
</div>

回答这个问题
还有我的表格

<form method="post" id="myForm" action="<?php echo base_url(); ?>posts/addQuestion">
                    <div class="input-group">
                        <div class="input-group-prepend">
                            <span class="input-group-text">Question</span>
                        </div>
                        <input type="text" placeholder="Enter your Question" name="question" id="question" class="form-control" required />
                    </div>

                    <hr>
                    <h5>Create Choices: </h5>
                    <div class="input-group input-group-sm mb-3">
                    <div class="table-responsive">  
                               <table class="table table-bordered" id="dynamic_field">  
                                    <tr>  

                                         <td><input type="hidden" name="choiceHid[]" value="0" /></td> 
                                         <td><input type="text" name="choice[]" id="choice" placeholder="Enter your Choice" class="form-control" /> </td>  
                                         <td><button type="button" name="add" id="add" class="btn btn-success"><span class="iconify" data-icon="ant-design:plus-circle-outlined" data-inline="false"></span> Add Response </button></td>  
                                         <td>
                                            <div class="form-check">
                                                <input class="form-check-input" type="radio" name="checkChoice[]" id="checkChoice" value="1" checked  />
                                                    <label class="form-check-label" for="exampleRadios1">
                                                        Make this as an Answer
                                                    </label>
                                            </div>
                                        </td>
                                    </tr>  

                               </table>  
                          </div>  
                    </div>

                    <hr>

                    <input type="button" id="btnSave" class="btn btn-block btn-info" value="Submit" />

</form>
动态字段脚本

将变量val作为checkChoice的值,如下所示

  <script>  
     $(document).ready(function(){  
          var i=1;  
          $('#add').click(function(){  
               var val =i;
               i++;  
               $('#dynamic_field').append(
                   '<tr id="row'+i+'">'+
                     '<td><input type="hidden" name="choiceHid[]" value="0" /></td>'+
                     '<td><input type="text" name="choice[]" placeholder="Enter your Choice" class="form-control" /></td>'+
                     '<td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove"><span class="iconify" data-icon="dashicons:remove" data-inline="false"></span></button></td>'+
                     '<td>'+
                            '<div class="form-check">'+
                                '<input class="form-check-input" type="radio" name="checkChoice" id="checkChoice" value="'+val+'" />'+
                                        '<label class="form-check-label" for="exampleRadios1">'+
                                            'Make this as an Answer'+
                                        '</label>'+
                            '</div>'+
                     '</td>'+
                   '</tr>'
                   );  

          });  

          $(document).on('click', '.btn_remove', function(){  
               var button_id = $(this).attr("id");   
               $('#row'+button_id+'').remove();  
          });  

     });  
     </script>

$(文档).ready(函数(){
var i=1;
$('#添加')。单击(函数(){
var=i;
i++;
$(“#动态_字段”)。追加(
''+
''+
''+
''+
''+
''+
''+
''+
“将此作为回答”+
''+
''+
''+
''
);  
});  
$(文档).on('click','.btn_remove',function(){
var按钮_id=$(this.attr(“id”);
$(“#行”+按钮id+”).remove();
});  
});  
查看

将checkChoice的初始值指定为0,如下所示

<div class="form-check">
 <input class="form-check-input" type="radio" name="checkChoice" id="checkChoice" value="0" checked  />
    <label class="form-check-label" for="exampleRadios1">
        Make this as an Answer
    </label>
</div>

回答这个问题
//插入答案

$data_answer = $this->input->post('choice[]');
$data_is_correct = $this->input->post('checkChoice');


$value = array();

for($i = 0; $i < count($data_answer); $i++) {

          if($data_is_correct == $i) {
            $correct = 1;
          } else {
            $correct = 0;
          }
    $value[$i] = array(
        'answer' => $data_answer[$i],
        'correct' => $correct,
        'question_id' => $this->db->insert_id(),
    );
}
$data\u answer=$this->input->post('choice[]);
$data\u is\u correct=$this->input->post('checkChoice');
$value=array();
对于($i=0;$i$data\u答案[$i],
“正确”=>$correct,
'question_id'=>this->db->insert_id(),
);
}

为动态字段添加代码…@Antony Jack-同样,我认为动态字段添加不会有帮助。它只是一个jquery,与表单同名。您添加的动态单选按钮中的值是多少…@Antony Jack-
您必须为单选按钮设置不同的值…
$this->input->post('choice[])
?你确定吗?你考了吗?我不确定我是否使用过这种语法。@AntonyJack-您好,我尝试过,没有错误或任何问题,但我插入的任何数据中都没有插入值1。先生,怎么样?谢谢<代码>打印(数据正确)在//插入答案,然后检查根据单选按钮更改或不更改的值在我的一侧其工作正常。。。确保更新版本的answer…@AntonyJack-它确实插入值是,但字段上的choose
correct
值仍然为0,它需要为1。
<script>  
 $(document).ready(function(){  
      var i=1;  
      $('#add').click(function(){  
           i++;  
           $('#dynamic_field').append(
               '<tr id="row'+i+'">'+
                 '<td><input type="hidden" name="choiceHid[]" value="0" /></td>'+
                 '<td><input type="text" name="choice[]" placeholder="Enter your Choice" class="form-control" /></td>'+
                 '<td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove"><span class="iconify" data-icon="dashicons:remove" data-inline="false"></span></button></td>'+
                 '<td>'+
                        '<div class="form-check">'+
                            '<input class="form-check-input" type="radio" name="checkChoice[]" id="checkChoice" value="1" />'+
                                    '<label class="form-check-label" for="exampleRadios1">'+
                                        'Make this as an Answer'+
                                    '</label>'+
                        '</div>'+
                 '</td>'+
               '</tr>'
               );  

      });  

      $(document).on('click', '.btn_remove', function(){  
           var button_id = $(this).attr("id");   
           $('#row'+button_id+'').remove();  
      });  

 });  
 </script>
  <script>  
     $(document).ready(function(){  
          var i=1;  
          $('#add').click(function(){  
               var val =i;
               i++;  
               $('#dynamic_field').append(
                   '<tr id="row'+i+'">'+
                     '<td><input type="hidden" name="choiceHid[]" value="0" /></td>'+
                     '<td><input type="text" name="choice[]" placeholder="Enter your Choice" class="form-control" /></td>'+
                     '<td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove"><span class="iconify" data-icon="dashicons:remove" data-inline="false"></span></button></td>'+
                     '<td>'+
                            '<div class="form-check">'+
                                '<input class="form-check-input" type="radio" name="checkChoice" id="checkChoice" value="'+val+'" />'+
                                        '<label class="form-check-label" for="exampleRadios1">'+
                                            'Make this as an Answer'+
                                        '</label>'+
                            '</div>'+
                     '</td>'+
                   '</tr>'
                   );  

          });  

          $(document).on('click', '.btn_remove', function(){  
               var button_id = $(this).attr("id");   
               $('#row'+button_id+'').remove();  
          });  

     });  
     </script>
<div class="form-check">
 <input class="form-check-input" type="radio" name="checkChoice" id="checkChoice" value="0" checked  />
    <label class="form-check-label" for="exampleRadios1">
        Make this as an Answer
    </label>
</div>
$data_answer = $this->input->post('choice[]');
$data_is_correct = $this->input->post('checkChoice');


$value = array();

for($i = 0; $i < count($data_answer); $i++) {

          if($data_is_correct == $i) {
            $correct = 1;
          } else {
            $correct = 0;
          }
    $value[$i] = array(
        'answer' => $data_answer[$i],
        'correct' => $correct,
        'question_id' => $this->db->insert_id(),
    );
}