Нужно вставить отдельные данные в базу данных - PullRequest
0 голосов
/ 11 апреля 2019

У меня проблема с вставкой отдельных данных из моей базы данных

Пример: у меня есть две данные: это вопрос1 с идентификатором 1 и вопрос 2 с идентификатором 2.Эти 2 вопроса имеют разные кнопки.Проблема в том, что когда я нажимаю кнопку «вопрос1» или «вопрос2», она вставляет оба идентификатора в мою базу данных.

Примерно так: 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++;               
    }  
?>

Моя проблема заключается в том, что я хочу вставить идентификатор вопроса2, не вставляя идентификатор вопроса1.Надеюсь, вы, ребята, можете помочь, спасибо!

1 Ответ

2 голосов
/ 11 апреля 2019

То, что происходит, заключается в том, что у вас есть все ваши входы в одной форме с несколькими кнопками отправки.

Я могу представить, как можно решить эту проблему:

  • Ajax way. Требуется несколько 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...