需要在数据库中插入单个数据

时间:2019-04-11 14:50:50

标签: php codeigniter

从数据库中插入单个数据时遇到问题

示例:我有两个数据,分别是ID为1的问题1和ID为2的问题2 :。那两个问题确实有不同的按钮。问题是,一旦我单击question1或question2按钮,它将在数据库中插入两个ID。

像这样:enter image description here

这是我的控制器

    $data['posts'] = $this->Post_Model->get_posts();

    $this->load->view('templates/header');
    $this->load->view('posts/index', $data);
    $this->load->view('templates/footer');

    $this->load->library('form_validation');  

    if($this->form_validation->run()==FALSE) {  
        if($this->input->post("add")) {  
            $this->Post_Model->count_up();
            redirect('posts');
        }  

    }

我的模特

function count_up(){
    for($i=0; $i<count($this->input->post('hidden')); $i++){
        $data = array(  
                'post_id' => $this->input->post("hidden[$i]")
            ); 

        $this->db->insert("userspost", $data);
    }
}

我的观点

<?php 
    $iq = 0;
    $i = 0;
    $arrtry = array();
    foreach($posts->result() as $post){ 
?>

    <br>
    <div class="card card-nav-tabs">
        <div class="card-header card-header-primary">
            <!-- colors: "header-primary", "header-info", "header-success", "header-warning", "header-danger" -->
            <div class="nav-tabs-navigation">
                <input class="form-control" value="<?php echo $arrtry[$iq++] =  $post->id;  ?>" name="hidden1[<?php $i; ?>]" type="hidden">

                <input class="btn btn-primary" type="submit" name="add" value="UP" />

            </div>
        </div>

    </div>

<?php 
    $i++;               
    }  
?>

我的问题是我想插入Question2 ID而不插入Question1 ID。希望你们能帮忙谢谢!

1 个答案:

答案 0 :(得分:2)

发生的事情是,您的所有输入都在同一表单中并带有多个提交按钮。

我可以想象出几种解决方法:

  • Ajax方式。需要一些JS和另一个控制器方法。

  • 每个按钮都有一个表单:因此,您将始终有一个$this->input->post('hidden')。无需对其进行迭代。

  • 仅使用一种形式,您可以将按钮设置为以下形式:

<input class="btn btn-primary" type="submit" name="add-up" value="<?= $i; ?>" />

因此,在您的控制器/模型上,您可以获得单击的索引:

/* controller/model */
$index = $this->input->post('add-up');
$hidden_value = $this->input->post("hidden")[$index]