Вставка данных с данными сеанса в базу данных с использованием Codeigniter - PullRequest
0 голосов
/ 07 марта 2019

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

Это мой контроллер:

function add($id){
            $this->point_m->addStudentSection($id);
            redirect('admins_view/points/index');
        }

Это моя модель:

function addStudentSection($id){
        $arr['section_id'] = $this->session->userdata('section_id');
        $arr['dateadded'] = $this->input->post('dateadded');
        $arr['schoolyear'] = $this->input->post('schoolyear');
        $arr['semester'] = $this->input->post('semester');
        $arr['point'] = $this->input->post('point');

        $this->db->where('student_id',$id);
        $this->db->insert('section_student',$arr);


    }

В случае, если приведенная выше модель неверна, вот моя другая модель, которую я также использую, также я использую sqlsrv для своей базы данных.

function addStudentSection($id){
            $arr['section_id'] = $this->session->userdata('section_id');
            $arr['dateadded'] = $this->input->post('dateadded');
            $arr['schoolyear'] = $this->input->post('schoolyear');
            $arr['semester'] = $this->input->post('semester');
            $arr['point'] = $this->input->post('point');

            $query = $this->db->query("

                INSERT INTO [dbo].[section_student]
               ([student_id]
               ,[section_id]
               ,[dateadded]
               ,[schoolyear]
               ,[semester]
               ,[point])
                VALUES
               ('$id'
               ,'$section_id'
               ,'$dateadded'
               ,'$schoolyear'
               ,'$semester'
               ,'$point')

                ");


        }

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

Это мой взгляд:

<table class="table">
  <tr>
    <th>ID Number</th>
    <th>Firstname</th>
    <th>Middlename</th>
    <th>Lastname</th>
    <th>Total Points</th>
    <th>Action</th>
  </tr>
  <?php
    foreach ($pt as $p) {
  ?>
    <tr>
      <!-- echo query with join -->
      <td><?php echo $p->idnumber ?></td>
      <td><?php echo $p->firstname ?></td>
      <td><?php echo $p->middlename ?></td>
      <td><?php echo $p->lastname ?></td>
      <td><?php echo $p->point ?></td>
      <td>
        <a href="<?php echo site_url('admins/point/add').'/'.'$p->id';?>" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">Add</a> 
        <a href="#" class="btn btn-danger">Redeem</a>
      </td>
    </tr>
    <?php
    }
  ?>
</table>

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

<!-- Modal -->
<form method="post" action="<?php echo base_url();?>admins/point/add">
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Add Point/s</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
          <label>Date</label>
          <input type="date" name="dateadded" class="form-control">
          <label>School year</label>
          <select name="schoolyear" class="form-control">
          <option value="2018-2019">2018-2019</option>
          <option value="2019-2020">2019-2020</option>
          </select>
          <label>Semester</label>
          <select name="semester" class="form-control">
            <option value="1st">First Semester</option>
            <option value="2nd">Second Semester</option>
            <option value="summer">Summer</option>
          </select>
            <label>Points</label>
            <input type="text" name="point" class="form-control">
      </div>
      <div class="modal-footer">
        <button type="submit" class="btn btn-primary">Save changes</button>
        <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>
</form>

и это ответ об ошибке .. это ошибка Надеюсь, что кто-то из сообщества может мне помочь.

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Поскольку ваш контроллер добавляет ($ id) ожидаемый 1 параметр, в модальном представлении вы не можете установить действие формы следующим образом:

<form method="post" action="<?php echo base_url();?>admins/point/add">

Измените действие формы на это:

<form method="post" action="<?php echo base_url();?>admins/point/add/$id">

Измените $id с вашим параметром.

Здесь документы .

0 голосов
/ 10 марта 2019

Вы должны добавить идентификатор в конце действия формы в вашем представлении.

или вы можете удалить его из своей функции в контроллере и опубликовать как скрытый ввод

, поэтому измените свой взгляд на

<form method="post" action="<?php echo base_url();?>admins/point/add/$id">

или перейдите к контроллеру и измените его на

function add($id = null){
    if($id == null){
        $id = $this->input->post('id');
    }
}

затем добавьте новый скрытый ввод в ваше представление прямо перед тегом закрытия формы, как этот

<?php echo form_hidden('id',$the_id);?>
...