php – 在Codeigniter中将一些数据记录到数据库中
我遇到了问题
我有一个问卷调查网站,以学生为受访者填写网站的问题.问题是,当将问卷结果中包含的数据发送到数据库时,数据不会记录在数据库中. 这是我的名为“jawab”的表作为答案记录列: | NIS | ID_SOAL | JAWABAN | 那张桌子(jawab)还是空的 现在我的控制器代码名为“soal”作为问题控制器: public function index(){ $data['title'] = "Kriteria Rumah Masa Depan yang di Inginkan"; // <-- tiltle $data['form_action'] = site_url('soal/index'); // //GET QUESTION $data['soals'] = $this->Soal_model->getSoal(); // SEND ANSWERS TO DATABASE $JAWABAN = $this->input->post('JAWABAN'); $this->Soal_model->InputJawaban($JAWABAN); $this->load->view('soal/index',$data); } 我的模型代码名为“soal_model”作为问题模型: /* GET ALL QUESTION */ function getSoal(){ $this->db->select('ID_SOAL,SOAL'); $query = $this->db->get('soal'); if($query->num_rows() > 0){ return $query->result_array(); } } /* **input students answer to database** */ function InputJawaban($JAWABAN){ $data = array( 'JAWABAN' => $JAWABAN /* JAWABAN as ANSWER */ ); $this->db->insert('jawab',$data); } 我的视图代码名称“index”: <body> <form method="post" action="<?php echo $form_action; ?>"> <table> <tr> <th>NO</th> <th>SOAL</th> <th>JAWAB</th> </tr> <?php $i= 1; ?> <?php foreach($soals as $soal): ?> <tr> <td><?php echo $soal['ID_SOAL']; ?></td> <td><?php echo $soal['SOAL']; ?></td> <td><input name="JAWABAN<?php echo $i;?>" type="radio" value="1">YA</input> <input name="JAWABAN<?php echo $i;?>" type="radio" value="0">TIDAK</input></td> <?php $i++; ?> </tr> <?php endforeach;?> </table> <input type="submit" value="KIRIM"/> </form> </body> 答案只是’YA’和’TIDAK’ 我试过,但失败了,我的数据库不会记录数据 这是我的目标 | NIS | ID_SOAL | JAWABAN | 我希望你理解我的要求 解决方法
这可以通过使用循环覆盖表单中的所有问题及其答案来完成,但是html表单和模型中的稍有变化
<?php foreach($soals as $soal): ?> <tr> <td><?php echo $soal['ID_SOAL']; ?></td> <td><?php echo $soal['SOAL']; ?></td> <td> <input name="JAWABAN[<?php echo $soal['ID_SOAL']; ?>]" type="radio" value="1" />YA <input name="JAWABAN[<?php echo $soal['ID_SOAL']; ?>]" type="radio" value="0" />TIDAK <input type="hidden" name="question[<?php echo $soal['ID_SOAL']; ?>]" value="<?php echo $soal['ID_SOAL']; ?>" /> </td> <?php $i++; ?> </tr> <?php endforeach;?> 在上面,我们已经将所有答案标记名称与其相应的问题ID和另一个隐藏输入分配,其中名称为问题,其值包含问题ID. 在控制器中,我们将后期数据传递给模型 $this->Soal_model->InputJawaban($_POST); 在模型中我们从下面的帖子数据中得到问题ID并循环问题并基于问题如果从帖子数据中选择答案我使用了JAWABAN,ID_SOAL列来插入数据并且不确定NIS的数据所以我放1这一栏你可以相应地改变它 function InputJawaban($data) { if (empty($data)) { return false; } foreach ($data['question'] as $key => $qid) { $answer = $data['JAWABAN'][$qid]; /* $qid is question id and from that id i have picked the answer whose name contains that question id i*/ $data = array( 'JAWABAN' => $answer,'ID_SOAL' => $qid,'NIS' =>1 ); $this->db->insert('jawab',$data); } return true; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |