0

ここでは、複数選択の検証を行いました。選択フィールドから値を選択して送信を行ったとしても、フィールドを選択するように指示し、codeigniter 3.0.6 を使用しています。たくさん検索しましたが、解決策が見つかりませんでした。これが私のコントローラーです

function online_booking() {

  $this->form_validation->set_rules('course', 'Course', 'required');
  $this->form_validation->set_rules('branch', 'Branch', 'required');

  if($crs = $this->input->post('course'))
  {
    $course = implode(',',$crs);
    var_dump($course); 
  }      

  if ($this->form_validation->run() == TRUE) 
  {
    $this->load->model('branch_model');
    $data = array('course' => $course, 'branch' => $this->input->post('branch'));

    $id = $this->branch_model->insert_enquiry($data);
    if ($id) 
        {

      $this->session->set_flashdata('message', 'Booking has been Succeed,We will contact you shortly.');
      redirect('online-booking');
        } 
        else 
        {
      $this->session->set_flashdata('message', 'Error has been occured,try again.');
      redirect('online-booking');
        }
  }
$data['active'] = 'online';
$data['program'] = $this->home_model->get_program();
$this->load->view('online_bookin', $data);
}

ここに私のビューページがあります

<div class="form-group col-md-6">
            <label for="exampleInputEmail1">Course to be opted*</label>
            <select class="form-control" name="course[]" id="course" multiple="multiple">
              <option value="">Select Course</option>
              <?php foreach ($program->result() as $row) if($row->parent_id !=0) {?>
              <option value="<?php echo $row->id; ?>" <?php echo set_select('course',$row->id) ?> ><?php echo $row->name; ?></option>
              <?php  } ?>
            </select>
          </div>

これは私のコールバック関数です

function is_multiple_select() {
$crs=$this->input->post('course');
if(!$crs)
 {
   $this->form_validation->set_message('is_multiple_select','You did not select any course to upload.');
  return false;
 }
 else
 {
  return true;
 }

}

これは私のモデルです

public function insert_enquiry($data=array())
{
   if($this->db->insert(`enquiryform`,$data))
     {
       return $this->db->insert_id();
     }
     else
     {
        return false;
     }

}

4

2 に答える 2

1

このコードを使用する理由:

if($crs = $this->input->post('course'))
  {
    $course = implode(',',$crs);
    var_dump($course); 
  }

取り外して動作確認。または、$this->form_validation->run() == TRUEブロック内に配置します。

于 2016-08-25T06:15:07.920 に答える