я пытаюсь вставить несколько строк одновременно, используя CodeIgniterВставка нескольких строк MySQL в CodeIgniter
мой HTML-код для просмотра CodeIgniter
<?= form_open(base_url() . 'home/create') ?>
<tbody>
<tr>
<td class="col-md-1 center-block">
<input type="text" name="id[]" value="1" class="form-control" />
</td>
<td>
<input type="text" placeholder="enter descreption" class="form-control" name="desc[]" />
</td>
<td class="col-md-2 center-block">
<input id="space" onkeyup="sumPrice()" type="number" class="form-control" name="space[]" />
</td>
<td>
<select onchange="sumPrice()" class="selectpicker price" data-live-search="true" data-width="100%" name="price[]" data-header="Select cost">
<option value="5">5</option>
<option value="10">10</option>
<option value="20">20</option>
</select>
</td>
<td class="total_price col-md-1">
<input type="number" class="form-control" name="total[]" value="1000" />
</td>
<td>
<button class="btn btn-danger center-block remove-row"><span class="glyphicon glyphicon-remove"></span> Remove</button>
</td>
</tr>
</tbody>
</table>
<input type="submit" value="insert" class="btn btn-success" />
</form>
<button class="btn btn-success append-row"><span class="glyphicon glyphicon-plus-sign"></span> Add new row</button>
и я использую JQuery, чтобы вставить новую строку в таблице здесь js
код
$('.append-row').click(function() {
$("table tbody").append
('<tr><td class="col-md-1 center-block"><input type="text" name="id[]" value="' + row_id_val++ + '" class="form-control" /></td> <td><input type="text" placeholder="enter descreption" class="form-control" name="desc[]" /></td> <td class="col-md-2 center-block"><input id="space" onkeyup="sumPrice()" type="number" class="form-control" name="space[]" /></td> <td> <select onchange="sumPrice()" class="selectpicker price" data-live-search="true" data-width="100%" name="price[]" data-header="Select Sub account" onselect="sumPrice()" > <option onselect="sumPrice()" value="5">5</option> <option onselect="sumPrice()" value="10">10</option> <option onselect="sumPrice()" value="20">20</option> </select> </td> <td class="total_price col-md-1"><input type="number" class="form-control" value="" name="total[]" /></td> <td><button class="btn btn-danger center-block remove-row"><span class="glyphicon glyphicon-remove"></span> Remove</button></td></tr>');
$('.selectpicker').selectpicker('refresh');
});
мой контроллер
if ($_POST) {
$data = array();
for ($i = 0; $i < count($this->input->post('id')); $i++) {
$data[$i] = array(
'row_id' => $this->input->post('id')[$i],
'desc' => $this->input->post('desc')[$i],
'space' => $this->input->post('space')[$i],
'price' => $this->input->post('price')[$i],
'total' => $this->input->post('total')[$i],
'code' => time()
);
}
$this->Home_model->create($data);
}
модель
function create($data) {
$this->db->insert_batch('quotation', $data);
}
я пытался слишком много решений от StackOverflow, но ни один из них не работал
, что ваш PHP версии? Если ваш PHP версии ниже 5.4 ваш код не будет работать –
@ShaifulIslam версии PHP 5.4.19 – user2976078
ваши представления только один массив набор ... как приходят вы ожидаете, что несколько строк будут вставлены .... – Raja