Я просто хочу спросить, как я могу выполнить 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.