0

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

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

像这样:在此处输入图像描述

这是我的控制器

    $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。希望大家帮忙谢谢!

4

1 回答 1

2

正在发生的事情是,您将所有输入都包含在具有多个提交按钮的同一个表单中。

我可以想象有几种方法可以解决这个问题:

  • 阿贾克斯方式。需要一些 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]
于 2019-04-11T15:12:59.227 回答