Добавить несколько значений с помощью кнопки Добавить - PullRequest
0 голосов
/ 27 сентября 2019

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

Пример: в имени_путешествия - Airasia

Несколько пассажиров хотят добавить вМодуль контроллера Airasia и вид есть

Вид:

<input type="text" name="flight_name"/>
<table id="dynamic_field">
    <tr>
        <td><label for="">Name</label><input class="validate" id="inv_passname" name="inv_passname[]" type="text"></td>
        <td><label for="">Email</label><input class="validate" id="inv_passemail" name="inv_passemail[]" type="text"></td>
        <td><label for="">Mobile</label><input class="validate" id="inv_passmno" name="inv_passmno[]" type="text"></td>
        <td><label for="">DOB</label><input class="validate" id="inv_passdob" name="inv_passdob[]" type="date" placeholder="date"></td>
        <td><label for="">Passport No.</label><input class="validate" id="inv_passpasno" name="inv_passpasno[]" type="text"></td>
        <td><label for="">Expiry Date</label><input class="validate" id="inv_passpasexpno" name="inv_passpasexpno[]" type="date" placeholder="date"></td>
        <td><button type="button" id="add_box_passen" name="add_box_passen" class="btn-floating mb-1 waves-effect waves-light cyan add"><i class="material-icons">add</i></button></a></td>
    </tr>
</table>

Контроллер:

function flightsalesdata()
{
    if ($this->session->userdata(travelsec . 'Login_Id'))
    {
        $this->form_validation->set_rules('inv_passname', 'Username', 'trim');

        if ($this->form_validation->run() == false) {
            $result['status']  = 'error';
            $result['message'] = validation_errors();
        } else {
            $inv_id = $this->Sales_model->flightsalesdata($this->input->post("inv_passname"));
            if ($inv_id > 0) {
                $result['status']       = 'success';
                $result['message']      = "<script> swal({title: 'Added Successfully',icon: 'success'})</script>";
                $result['redirect_url'] = 'flight';
            } else
               $result['message'] = "<script> swal({title: 'Email Address Already Exists',icon: 'error'})</script>";
        }
        $this->output->set_content_type('application/json');
        $this->output->set_output(json_encode($result));
        $string = $this->output->get_output();
        echo $string;
        exit();
    }
else
        redirect('administrator');
}

Модель:

function flightsalesdata($inv_passname)
{
    $data = array();
    foreach($ps5 as $key=>$value) {
        $data[]  = array(
            'inv_passname' => $value
        );
    }

    $query =$this->db->query("INSERT INTO `flight_passenger`(`inv_passname`) values('$inv_passname')");
    $this->db->insert_id(); 
}

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Вы можете сделать Array значений и использовать функцию insert_batch() для вставки массива и сэкономить время цикла.

function flightsalesdata($inv_passname)
{

    $data = array();
    foreach($ps5 as $key=>$value) 
    {
        $data[]  = array(
                'inv_passname' => $value
            );
    }
       $query  = $this->db->insert_batch('flight_passenger',$data);

}
0 голосов
/ 27 сентября 2019

Измените код модели, как показано ниже.надеюсь, что его работа. Модель :

     function flightsalesdata($inv_passname)
            {

                 $data = array();
            foreach($ps5 as $key=>$value) {

$query =$this->db->query("INSERT INTO `flight_passenger`(`inv_passname`) values(".$value.")");
$this->db->insert_id();
            }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...