将数据库中的无线电值多个数据 codeigniter 插入一行?
insert radio value multiple data codeigniter in database to one row?
我有一个在线测验项目,我希望答案像这样保存在数据库中
+-----------+-------------+---------+-------------+
| id_answer | id_student | id_kuis | answer |
+-----------+-------------+---------+-------------+
| 1 | 99999874465 | 7 | A,B,D,A,C,B |
+-----------+-------------+---------+-------------+
这个测验是选择题。那么我怎样才能像这样插入答案的数据。
这是我的观点
<?php echo form_open('c_kuis/addKuisAnswer',$atribut); ?>
<?php foreach($soalPG as $row){?>
<?php $jawab_array = array($row->pil_a,$row->pil_b,$row->pil_c,$row->pil_d);?>
<p><?=$row->no_soal?>.<?=$row->soal?></p>
<input type="hidden"name="id_soal<?=$row->id_soal_pg?>" value="<?=$row->id_soal_pg?>"></input>
<input type="radio" name="jawaban<?=$row->no_soal?>" value="A"> A. <?=$jawab_array[0]?></input><br>
<input type="radio" name="jawaban<?=$row->no_soal?>" value="B"> B. <?=$jawab_array[1]?></input><br>
<input type="radio" name="jawaban<?=$row->no_soal?>" value="C"> C. <?=$jawab_array[2]?></input><br>
<input type="radio" name="jawaban<?=$row->no_soal?>" value="D"> D. <?=$jawab_array[3]?></input><br>
<br><br>
<?php } ?>
<input type="hidden" name="kuis_id" value="<?php echo $kuisPG->id_ks;?>"></input>
<button class="btn btn-primary submit" id= "submit" type="submit">Submit</button>
<?php echo form_close(); ?>
</div>
这是我的控制器
public function addKuisAnswer(){
$kuis_id = $_POST['kuis_id'];
$id_user = $this->session->userdata('data_user')->no_id;
$i=1;
while(isset($_POST['jawaban'.$i]))
{
$answer = $_POST['jawaban'.$i];
}
$this->load->model('m_kuis');
$this->m_kuis->answer_PG($id_user,$kuis_id,$answer);
echo " <script>
alert('answer saved!');
history.go(-2);
</script>";
}
如何编辑我的控制器以输入数据,如上面的示例 table?
由于您的问题只有一个答案,因此您的单选按钮名称对于所有 4 个选项都应该相同,因此用户可以 select 只有一个答案,您可以轻松地在 post请求。
你的其余代码看起来是正确的。
试试这个代码:
public function addKuisAnswer(){
$kuis_id = $_POST['kuis_id'];
$id_user = $this->session->userdata('data_user')->no_id;
$i=1;
while(isset($_POST['jawaban'.$i]))
{
$answer = $_POST['jawaban'.$i];
}
$this->load->model('m_kuis');
// add this line to combine all the array values as a string
$answer = implode(",",$answer);
$this->m_kuis->answer_PG($id_user,$kuis_id,$answer);
echo " <script>
alert('answer saved!');
history.go(-2);
</script>";
}
我想这可能对你有帮助
public function addKuisAnswer(){
$kuis_id = $_POST['kuis_id'];
$id_user = $this->session->userdata('data_user')->no_id;
$i=1;
while(isset($_POST['jawaban'.$i]))
{
if($i == 1)
{
$answer = $_POST['jawaban'.$i];
}
else{
$answer. =','. $_POST['jawaban'.$i];
}
$i++;
}
$this->load->model('m_kuis');
$this->m_kuis->answer_PG($id_user,$kuis_id,$answer);
echo " <script>
alert('answer saved!');
history.go(-2);
</script>";
}
我们有另一种解决方案,使用 explode
和 implode
while(isset($_POST['jawaban'.$i]))
{
$answer_array[] = $_POST['jawaban'.$i];
$i++;
}
$answer = implode(',',$answer_array);
我有一个在线测验项目,我希望答案像这样保存在数据库中
+-----------+-------------+---------+-------------+
| id_answer | id_student | id_kuis | answer |
+-----------+-------------+---------+-------------+
| 1 | 99999874465 | 7 | A,B,D,A,C,B |
+-----------+-------------+---------+-------------+
这个测验是选择题。那么我怎样才能像这样插入答案的数据。
这是我的观点
<?php echo form_open('c_kuis/addKuisAnswer',$atribut); ?>
<?php foreach($soalPG as $row){?>
<?php $jawab_array = array($row->pil_a,$row->pil_b,$row->pil_c,$row->pil_d);?>
<p><?=$row->no_soal?>.<?=$row->soal?></p>
<input type="hidden"name="id_soal<?=$row->id_soal_pg?>" value="<?=$row->id_soal_pg?>"></input>
<input type="radio" name="jawaban<?=$row->no_soal?>" value="A"> A. <?=$jawab_array[0]?></input><br>
<input type="radio" name="jawaban<?=$row->no_soal?>" value="B"> B. <?=$jawab_array[1]?></input><br>
<input type="radio" name="jawaban<?=$row->no_soal?>" value="C"> C. <?=$jawab_array[2]?></input><br>
<input type="radio" name="jawaban<?=$row->no_soal?>" value="D"> D. <?=$jawab_array[3]?></input><br>
<br><br>
<?php } ?>
<input type="hidden" name="kuis_id" value="<?php echo $kuisPG->id_ks;?>"></input>
<button class="btn btn-primary submit" id= "submit" type="submit">Submit</button>
<?php echo form_close(); ?>
</div>
这是我的控制器
public function addKuisAnswer(){
$kuis_id = $_POST['kuis_id'];
$id_user = $this->session->userdata('data_user')->no_id;
$i=1;
while(isset($_POST['jawaban'.$i]))
{
$answer = $_POST['jawaban'.$i];
}
$this->load->model('m_kuis');
$this->m_kuis->answer_PG($id_user,$kuis_id,$answer);
echo " <script>
alert('answer saved!');
history.go(-2);
</script>";
}
如何编辑我的控制器以输入数据,如上面的示例 table?
由于您的问题只有一个答案,因此您的单选按钮名称对于所有 4 个选项都应该相同,因此用户可以 select 只有一个答案,您可以轻松地在 post请求。 你的其余代码看起来是正确的。
试试这个代码:
public function addKuisAnswer(){
$kuis_id = $_POST['kuis_id'];
$id_user = $this->session->userdata('data_user')->no_id;
$i=1;
while(isset($_POST['jawaban'.$i]))
{
$answer = $_POST['jawaban'.$i];
}
$this->load->model('m_kuis');
// add this line to combine all the array values as a string
$answer = implode(",",$answer);
$this->m_kuis->answer_PG($id_user,$kuis_id,$answer);
echo " <script>
alert('answer saved!');
history.go(-2);
</script>";
}
我想这可能对你有帮助
public function addKuisAnswer(){
$kuis_id = $_POST['kuis_id'];
$id_user = $this->session->userdata('data_user')->no_id;
$i=1;
while(isset($_POST['jawaban'.$i]))
{
if($i == 1)
{
$answer = $_POST['jawaban'.$i];
}
else{
$answer. =','. $_POST['jawaban'.$i];
}
$i++;
}
$this->load->model('m_kuis');
$this->m_kuis->answer_PG($id_user,$kuis_id,$answer);
echo " <script>
alert('answer saved!');
history.go(-2);
</script>";
}
我们有另一种解决方案,使用 explode
和 implode
while(isset($_POST['jawaban'.$i]))
{
$answer_array[] = $_POST['jawaban'.$i];
$i++;
}
$answer = implode(',',$answer_array);