【问题标题】:Record some data to database in Codeigniter在 Codeigniter 中记录一些数据到数据库
【发布时间】:2014-06-02 22:10:23
【问题描述】:

我有问题 我有一个问卷调查网站,使用学生作为受访者来填写网站的问题。问题是,当将问卷结果中包含的数据发送到数据库时,数据并没有记录在数据库中。

这是我的表,名为“jawab”,作为答案记录,列:
'NIS' 作为学生证
'ID_SOAL' 作为问题 ID
学生回答“JAWABAN”

| 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); 
    }

我的视图代号“索引”:

    <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 |
| 001 | 1 | Ya |
| 001 | 2 | Ya |
| 001 | 3 | Tidak |
| 001 | 4 | Tidak |

希望你明白我的要求
谢谢 谢谢

【问题讨论】:

    标签: php mysql sql codeigniter model


    【解决方案1】:

    这可以通过对表单中的所有问题及其答案使用循环来完成,但在 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;
    
    }
    

    【讨论】:

      猜你喜欢
      • 2014-04-09
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 2021-02-18
      • 2012-12-06
      • 2012-01-12
      相关资源
      最近更新 更多