У меня есть представление, которое содержит форму, в которой отображаются все предметы из моей базы данных с полями ввода для ввода баллов по каждому предмету, а затем щелкаю кнопку для отправки данных в базу данных одним махом.
<?php echo form_open('teacher/submit_ca_score/'.$d->id); ?>
<table class="table table-bordered cell-text-middle" style="text-align: left">
<thead>
<tr>
<th class="w-10">S/N</th>
<th class="w-50">Subject</th>
<th class="w-15">CA Score</th>
</tr>
</thead>
<tbody>
<?php
$count = 1;
foreach ($subjects as $s) {
$query = $this->teacher_model->check_ca_score_exists($d->id, $s->subject); ?>
<tr>
<td><?php echo $count; ?></td>
<td><?php echo $s->subject; ?></td>
<td>
<div class="form-group">
<input type="hidden" name="subject[]" value="<?php echo $s->subject; ?>" />
</div>
</td>
</tr>
<?php $count++; ?>
<?php } ?>
</tbody>
</table>
<div class="form-group">
<button class="btn btn-success btn-lg">Submit</button>
</div>
<?php echo form_close() //submit_ca_score ?>
Это мой контроллер:
public function submit_ca_score($id) {
$this->form_validation->set_rules('ca_score[]', 'CA Score', 'trim');
$subjects = $this->input->post('subject', TRUE);
$scores = $this->input->post('ca_score', TRUE);
$y = $this->common_model->get_student_details_by_id($id);
if ($this->form_validation->run()) {
$data = array();
foreach ($subjects as $key => $value) {
$row = array();
$row['admission_id'] = $y->admission_id;
$row['subject'] = $value;
$ca_score = "";
foreach ($scores as $key => $value) {
$ca_score = $value;
}
$row['ca_score'] = $ca_score;
$row['session'] = current_session;
$row['term'] = current_term;
$data[] = $row;
}
if ( ! empty($data) ) {
$this->teacher_model->batch_insert_ca_score($id, $data);
$this->session->set_flashdata('status_msg', "{$subject} CA score submitted successfully for {$y->first_name}");
} else {
$this->session->set_flashdata('status_msg_error', "Error submitting CA score!");
}
redirect($this->agent->referrer());
} else {
$this->produce_report($id); //form validation fails, reload page with errors
}
}
.... и модель: Teacher_model
public function batch_insert_ca_score($id, $data = array()) {
$insert = $this->db->insert_batch('student_results', $data);
return $insert ? TRUE : FALSE;
}
Пакетная операция работает, но данные из поля ca_scoreне выбирается.Я знаю, что делаю что-то не так, но я просто не могу понять, что это такое.Я пытался это часами, в основном играю, но ничего не получается.Я только начал экспериментировать с пакетной операцией в коде воспламенителя.Может кто-нибудь, пожалуйста, укажите мне правильное направление.