Codeigniter:将无线电值传递给数据库

Posted

技术标签:

【中文标题】Codeigniter:将无线电值传递给数据库【英文标题】:Codeigniter : passing radio value to database 【发布时间】:2015-04-23 03:40:36 【问题描述】:

我想做一个简单的考试系统。

我们的想法是从下面的表格中提出一个问题,然后将值与下面的数据一起发送,因此我想将检查的输入发送到名为正确答案的列,并将两者发送到名为选项的列。

有什么想法吗?

我在视图中有这个表单

<form action="<?php echo base_url('home') ;?>" method="post">
    <input type="text" name="question" placeholder="Enter question here"><br>
    <label>choose the right answer</label><br>
    <input type="radio" name="answer" value="first"> <input type="text" placeholder="first choice"><br>
    <input type="radio" name="answer" value="second" checked><input type="text" placeholder="second choice"><br>
    <input type="submit" value="sumbit" name="ask">
</form>

这是我的控制器:

class Home extends CI_Controller
    public function __construct()
        parent::__construct();
        $this->load->model('exams_model') ;
    
    public function index()
        $this->load->view('vieww') ;
        if($this->input->post('ask')) 
            $this->exams_model->add_question() ;
        
    


&这是模型:

class Exams_model extends CI_Model
    public function add_question()
        $data = array(
            'question' => $this->input->post('question') ,
            'choices' => $this->input->post('#') , // here i want to send both inputs ( the checked and non checked input
            'right_answer' => $this->input->post('#') // i want to pass the checked input to  the column right answer in the database 


        );
        $insert = $this->db->insert('exams' , $data);
        return $insert ;

    

【问题讨论】:

【参考方案1】:

实际上,您不能发送单选按钮的未选中值。 但是您可以做的是: 创建隐藏字段,将它们命名为choice_1 和choice_2,将它们设置为与您为单选按钮选项设置的值相同的值。

<input type="hidden" name='choice_1' value='first_value'/> 
<input type="hidden" name='choice_2' value='second_value'/>

<input type="radio" name='answer' value='first_value'/> 
<input type="radio" name='answer' value='second_value'/> 

现在像以前一样在模型中获取它们的对应值。

 $data = array(
        'question' => $this->input->post('question') ,
        'choices' => $this->input->post('choice_1').' and '.$this->input->post('choice_2') , 
        'right_answer' => $this->input->post('#') 
    );

如果觉得有帮助,请投票 :-)

【讨论】:

以上是关于Codeigniter:将无线电值传递给数据库的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter:如何将 $this->db->insert_id() 值传递给控制器​​以便插入另一个表?

如何将数据 Codeigniter 控制器传递给 Angularjs 控制器

CodeIgniter 将变量传递给视图

长 URL 值未在 Codeigniter 中提交

会话数据问题编号的值没有增加并在 codeigniter 项目中传递

将 codeigniter $data['foo'] 从控制器传递给视图