Как использовать update_batch с использованием массивов Codeigniter? - PullRequest
1 голос
/ 12 октября 2019

Я просто хочу спросить, как я могу выполнить batch_update, используя массивы в CodeIgniter. Вот мой пример кода:

Контроллер:

function flightsaleseditdata()
{
    if ($this->session->userdata(travelsec . 'Login_Id'))
    {
        $this->form_validation->set_rules('inv_passuserid', 'trim');
        $this->form_validation->set_rules('inv_passname[]', 'trim');
        if ($this->form_validation->run() == false) {
            $result['status']  = 'error';
            $result['message'] = validation_errors();
        } else {
                $inv_passuserid = $this->input->post("inv_passuserid");
                $inv_passname = $this->input->post("inv_passname");
                $inv_passuserid = $this->Flightsales_model->flightsaleseditdata($inv_passuserid,$inv_passname);
                    if ($inv_passuserid > 0) {
                    $result['status']       = 'success';
                    $result['message']      = "<script> swal({title: 'Updated Successfully',icon: 'success'})</script>";
                    $result['redirect_url'] = 'flightlist';
            } 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');
}   

Модель:

public function flightsaleseditdata()
{
    $inv_id=$this->input->post("inv_id");
    $inv_passuserid = $this->input->post("inv_passuserid");
    $inv_passname = $this->input->post("inv_passname");
    $query =$this->db->query("SELECT * FROM `flight_user` WHERE inv_id='$inv_id' ");
    if($query->num_rows())  
    {

            // Flight Passenger
            $query =$this->db->query("select * from `flight_user` where `inv_id`='$inv_id'");
            $row = $query->row();
            $invid=$row->inv_id;
            $username=$row->inv_userid;

            for($i = 0; $i < count($inv_passid); $i++){

             $updateArray = array(
                'inv_pid' => $invid,
                'inv_passuserid' => $username,
                'inv_passname' => $inv_passname[$i]);

             $this->db->where('inv_pid', $invid)->update_batch('flight_passenger', $updateArray);
            }
    }
    return  $inv_id;    
}

Просмотр:

<form id="FlightSalesEditForm" role="form">
            <div class="col m6 s12">

            <div id="html-validations" class="card card-tabs">
                <div class="card-content">
                    <div id="html-view-validations">
                        <div class="row">
                            <input class="validate" id="inv_id" value="<?php echo $invoicedetails['inv_id']; ?>" name="inv_id" type="text">
                            <table id="dynamic_field">
                                <?php for($i=0;$i<sizeof($passengerdetails);$i++) { ?>
                                <tr>
                                    <td><label for="">Name</label>
                                    <input class="validate" id="inv_passname<?php echo $i+1; ?>" name="inv_passname<?php echo $i+1; ?>[]" value="<?php echo $passengerdetails[$i]['inv_passname']; ?>" type="text"></td></tr>
                                <?php } ?>
                              </table>
                            <div class="input-field col s12">
                                <span id="FlightErrEdit_error"></span>
                                <button class="btn waves-effect waves-light right" type="submit">Submit<i class="material-icons right">send</i>
                                </button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            </div>
            </form>

Скрипт:

$ (document) .ready (function () {$ ("# FlightSalesEditForm"). Submit (function (e) {e.preventDefault (); $("#FlightErrEdit_error"). Html ('Please Wait ......'); $ .ajax ({url: "/ flightaleseditdata", тип: "POST", данные: $ (this) .serialize (),success: function (response) {alert (data); var result = JSON.parse (response); $ ('# FlightErrEdit_error'). html (result ['message']); $ ('# FlightErrEdit_error'). show (); window.setTimeout (function () {location.reload ()}, 2000)}});});});

Обновленный код Это мой код, и я не могу понять, где моя ошибка. Я также проверил значения моего массива, и в моем массиве нет ошибок. Моя проблема в том, что я не могу обновить свою таблицу с помощью batch_update.

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