Хорошо, у меня есть форма добавления данных в БД. У меня есть одно поле ввода и кнопка, которая добавляет больше полей ввода при нажатии. Мой вопрос заключается в том, как захватить в контроллере все входы и отправить его в модель. Мой код до сих пор:
Jquery:
<script>
$('a').click(function(e){$('#inp').append('<div><input class = "new_input" type=text name="name[]"/><a class="remove_field "href="#"> X</a><div><br/>');
$('.remove_field').click( function(e){
e.preventDefault();
$(this).parent('div').remove();
})
});
</script>
форма:
<?php
// Forma za unos podataka
echo $this->session->flashdata('item');
echo '<h4>Unesite podatke</h4>';
echo '<div id="warning"></div>';
$att = array('name'=>'form','onsubmit'=>" return validation()");
echo form_open('admin/crud/adding/',$att);
echo form_label('Novi podatak:', 'input_data_info') . br() . br();
$data = array(
'name' => 'input_data_info',
'id' => 'input_data_info',
'placeholder' => 'Unestite podatke',
);
echo form_input($data) . br() . br();
echo '<div id="inp"></div>';
echo "<a href='#'>".'Novi unos'."</a>" .br() .br();
echo form_submit('save', 'Snimi') . br() . br();
echo form_submit('add', 'Dodaj').br();echo form_close();
?>
контроллер:
$input_data_info = (string)$this->input->post('input_data_info', TRUE);
//model za dodavanje podataka
$this->load->model('Data');
$query = $this->Data->add($input_data_info);
Имя первого поля ввода — «input_data_info», а затем JQuery добавляет поля ввода с «name []».
Поскольку вы хотите извлечь данные из всех полей ввода, им, во-первых, нужно иметь общее имя.
Итак, переименуйте поле ввода, которое вы изначально создали в форме, в name = ‘name []’, которое делает ваш код:
$data = array(
'name' => 'name[]',
'id' => 'input_data_info',
'placeholder' => 'Unestite podatke',
);
Тогда в вашем контроллере используйте что-то вроде этого:
$ all_input_data = $ this-> input-> post (‘name’);
// $ all_input_data — это массив, содержащий все ваши входные значения.
Других решений пока нет …