Codeigniter - добавление строк в представление, а затем добавление этих строк в таблицу базы данных - PullRequest
0 голосов
/ 29 января 2020

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

Независимо от того, сколько строк я добавляю или публикую, будь то 2, 5 или 10, только последняя строка данных попадает в базу данных.

СТРУКТУРА СТОЛОВ

sub_name            sub_tests         sub_dx
Jimmy's Deli         11                3
Sally's Shop         31                2

APPEND SCRIPT

    <script type="text/javascript">
    $(document).ready(function(){      
      var i=1;  

      $('#add').click(function(){  
           i++;  
           $('#dynamic_field').append('<tr id="row'+i+'" class="dynamic-added"> <td><input type="text" name="addmore[$i][sub_name]" placeholder="Enter Name" class="form-control name_list" required="" /></td> <td><input type="text" name="addmore[$i][sub_tests]" placeholder="Total Tests" class="form-control name_list" required="" /></td> <td><input type="text" name="addmore[$i][sub_dx]" placeholder="Total Diagnosed" class="form-control name_list" required="" /></td> <td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td> </tr>');  
      });

      $(document).on('click', '.btn_remove', function(){  
           var button_id = $(this).attr("id");   
           $('#row'+button_id+'').remove();  
      });  

    });  
</script>

ПРОСМОТР

            <div class="table-responsive">  
                <table class="table table-bordered" id="dynamic_field"> 

                  <!-- APPEND -->
                    <tr>  
                        <td><input type="text" name="addmore[$i][sub_name]" placeholder="Enter Name" class="form-control name_list" required="" /></td>
                        <td><input type="text" name="addmore[$i][sub_tests]" placeholder="Total Tests" class="form-control name_list" required="" /></td>
                        <td><input type="text" name="addmore[$i][sub_dx]" placeholder="Total Diagnosed" class="form-control name_list" required="" /></td>

                        <td><button type="button" name="add" id="add" class="btn btn-success">Add More</button></td>  
                    </tr>  
                  <!-- APPEND -->

                </table>  
                <!--input type="submit" name="submit" id="submit" class="btn btn-info" value="Submit" /-->  
            </div>

КОНТРОЛЛЕР

// this is posting only the last array to the database table and not the first one.
      foreach ($this->input->post('addmore') as $key => $value)
        {
          $this->input->post['sub_name'];
          $this->input->post['sub_tests'];
          $this->input->post['sub_dx'];
        }
      {
      $this->db->insert('non_clinical_subs', $value);
      }

ПЕЧАТНАЯ БРЕЛКА

// not sure if I broke the code up the correct way 
[addmore] =>

Array ( [0] => Array ( 
[sub_name] => Row 10:43 - 1 
[sub_tests] => 2 
[sub_dx] => 2 ) ) 

// this part doesn't look right
[sub_name] => Array ( [0] => [1] => ) 
[sub_tests] => Array ( [0] => [1] => ) 
[sub_dx] => Array ( [0] => [1] => ) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...