如何获取URI的ID,提交后将其插入数据库?点火枪

时间:2020-03-17 06:46:45

标签: php codeigniter codeigniter-3

我遇到了需要提交或重定向到相同uri页面的问题。

这里的主要问题是id的网址未读或未获取, 如何将其插入到我的数据中。

提交页面后出现错误

An uncaught Exception was encountered
Type: ArgumentCountError

例如,我的网址是:http://localhost/project/groups/view_activity/1

然后我需要将其提交给控制器/posts/create_activity

这里是控制器/posts/create_activity

public function create_activity($id){

    $this->post_model->create_activity();

    redirect('groups/view_activity/'.$id);
}

还有我的模型,我希望 $ id 是URI

public function create_activity($id){
        // Insert questions

        $field_question = array(
            'question'=>$this->input->post('question'),
            'group_id' => $id
        );

        $this->db->insert('questions', $field_question);
}

提交表单

<form method="post" action="<?php echo base_url(); ?>posts/create_activity">


    <div class="form-group">
        <label for="exampleFormControlTextarea1"><h5> Question: </h5></label>
             <textarea class="form-control" name="question" id="question" rows="8" placeholder="Enter your Question"></textarea>
    </div>

        <hr>


    <input type="submit" id="btnSave" class="btn btn-block btn-info" value="Submit" />

 </form>

2 个答案:

答案 0 :(得分:1)

您必须将$id控制器方法中的view_activity传递给视图,或者可以从视图中的uri直接获取它。 之后,将您的form action更改为

<form method="post" action="<?php echo base_url('posts/create_activity/'.$id); ?>">

或者,如果您不想在uri中使用它,则可以添加一个隐藏的input,其值为$id

答案 1 :(得分:0)

将ID传递到模型函数

$this->post_model->create_activity($id);