Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 复选框未正确执行_Php_Codeigniter_Checkbox - Fatal编程技术网

Php 复选框未正确执行

Php 复选框未正确执行,php,codeigniter,checkbox,Php,Codeigniter,Checkbox,我有一个小的多选页面,用户可以在其中回答问题,所有答案都存储在数据库中,但由于某种原因,代码无法正确执行。无论我单击哪个答案,它都只显示3个可用选项中的第一个选项。假设我有3个答案苹果,梨,窗口如果我点击第一个苹果,它将在数据库中存储苹果,但如果我点击窗口或梨,它将存储苹果而不是窗口或梨,有人能帮我吗这里是我的控制器功能: function addanswer() { $arrData = array(); $userid = null; if ($this->s

我有一个小的多选页面,用户可以在其中回答问题,所有答案都存储在数据库中,但由于某种原因,代码无法正确执行。无论我单击哪个答案,它都只显示3个可用选项中的第一个选项。假设我有3个答案苹果,梨,窗口如果我点击第一个苹果,它将在数据库中存储苹果,但如果我点击窗口或梨,它将存储苹果而不是窗口或梨,有人能帮我吗这里是我的控制器功能:

function addanswer() {

    $arrData = array();
    $userid = null;
    if ($this->session->userdata("userid")) {
        $userid = $this->session->userdata("userid");
    }
   if ($this->input->post()) {
        //$arrData["answerid"] = $this->input->post("QID");
        $arrData["questionid"] = $this->input->post("qA");
        if ($this->input->post("qA")) {
            $arrData["answerA"] = $this->input->post("qA");
        }
        if($this->input->post("qB")) {
            $arrData["answerB"] = $this->input->post("qB");
        }
        if($this->input->post("qC")) {
            $arrData["answerC"] = $this->input->post("qB");
        }
        $arrData["userid"] = $userid;
    }
    $viewData['survay_data_id'] = $this->survay->addsurvay($arrData); 
    $this->load->view('survay_view', $viewData);
}
型号

   <?php

class Survay extends CI_Model {

    function dosurvay($question_id = null) {

        $this->db->select('QID, Question, qA, qB, qC');
        $this->db->from('tblquestions');
        if ($question_id) {
            $this->db->where('QID', $question_id);
        }
        $this->db->limit(1);
        $query = $this->db->get();

        if ($query->num_rows() == 1) {
            return $query->result();
        } else {
            return false;
        }
    }

function addsurvay($arrData) {

    $this->db->insert('tblanswers', $arrData);

    if ($this->db->affected_rows() > 0) {
        return $this->db->insert_id();
    } else {
        return false;
    }
}

}
?>

查看

     <?php if(isset($survay_data)) : ?>
<form action="http://localhost/Surva/index.php/survaycontroller/addanswer/" name="myform" id="myform" method="post">
   <?php foreach ($survay_data as $survay): ?> 
        <ul>
            <li><h1><?php echo $survay->Question; ?></h1></li> 
            <li><?php echo $survay->qA; ?><input type="checkbox" name="qA" value="<?php echo $survay->qA; ?>"></li>
            <li><?php echo $survay->qB; ?><input type="checkbox" name="qB" value="<?php echo $survay->qB; ?>"></li>
            <li><?php echo $survay->qC; ?><input type="checkbox" name="qC" value="<?php echo $survay->qC; ?>"></li>
            Comments:
            <li><?php echo form_textarea('comment')?></li>
            <li><input type="hidden" name="QID" value="<?php echo $survay->QID; ?>"></li>
            <li><input type="submit" name="btn" value="Answer"></li>
        </ul>
    <?php endforeach; ?>
</form>
<?php endif; ?>


  • 在HTML中,您已将
    $survay->qA
    分配给所有三个复选框值

    <input type="checkbox" name="qB" value="<?php echo $survay->qA; ?>">
    

    同时显示您的HTML代码和模型代码..我发布了它们,它们是uptnx它修复了一半的问题现在如果所有3个复选框都被选中它会回答A B B不是A B C有什么建议吗?@EdvinasLiutvaitis您在第三个复选框中也做了更改吗?您的第三个复选框也包含$survay->qAyes我确实更改了所有复选框我更新了问题中的代码当我选择A和B答案而不是C时,它会为B返回A和A 0,B应该是Aword@EdvinasLiutvaitis:这是pbm$arrData[“应答”]=$this->input->post(“qB”);