【发布时间】:2014-01-27 20:26:07
【问题描述】:
我正在使用 CodeIgniter,但在从输入中检索数组时遇到问题。 我一直在寻找,但我无法解决这个问题。问题是我正在使用一个按钮来动态添加文本框。
(来自 view.php 的 HTML)
<?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,它工作得很好...... 我很感激任何帮助!提前谢谢你。
【问题讨论】:
-
第一个 print_r($_POST['ings']);并检查它是否包含数组,因为我运行这个示例它对我来说很好。这条线可能是你的问题 $this->input->post('ings');尝试使用 $ings = $_POST['ings'];并检查
-
感谢您的回答。不幸的是,我已经尝试了您的建议,但没有奏效。添加 foreach($ings as $ing) { echo $ing; } 只显示 ings 的第一个输入。并尝试 print_r($_POST['ings']);也只给出第一个 ing(输出:Array ( [0] => ing1 ))我不知道为什么会这样......
标签: php html codeigniter