Я использую CodeIgniter, и мне не удается получить массив из ввода. Я искал, но я не могу решить эту проблему. Дело в том, что я использую кнопку для динамического добавления текстовых полей.Извлечение массива данных из POST CodeIgniter
(HTML от view.php)
<?php echo form_open('verifynovareceita'); ?>
(...)
<div id="ings">
<p>Ingredients:</p>
<input type="text" name="ings[]"/>
</div>
<input type="button" value="Add another ingrdient" name="add" onClick="addTextBox()">
(...)
<script type='text/javascript'>
function addTextBox() {
var ings = document.getElementById("ings");
var input1 = document.createElement("input");
input1.type = "text";
input1.name = "ings[]";
ings.appendChild(input1);
}
А (визуальный) результат того, что он ожидал. Он создает столько вкладов, сколько я хотел. Проблема заключается в том, когда речь идет о получении данных из массива POST:
(PHP от контроллера)
$ings = $this->input->post('ings');
$row_count = count($ings);
$ row_count не имеет значение 1, независимо от того, как существует много текстовых полей. Есть ли проблема с моим кодом? Или это факт, что я использую form_open, что делает невозможным работу? Я попытался сделать то же самое, без codeigniter, и это сработало нормально ... Я ценю любую помощь! Заранее спасибо.
first print_r ($ _ POST ['ings']); и проверьте, содержит ли он массив или нет, потому что я запускаю этот пример, он отлично работает для меня. Может быть, ваша проблема с этой строкой $ this-> input-> post ('ings'); попробуйте использовать $ ings = $ _POST ['ings']; и проверьте –
Спасибо за ответы. К несчастью, я пробовал то, что вы пробовали, и это не сработало. Добавление foreach ($ ings as $ ing) {echo $ ing; } Показывает только первый ввод данных. И попробуйте print_r ($ _ POST ['ings']); Выдает только первый результат (выход: Array ([0] => ing1)) Я понятия не имею, почему это происходит ... –