我的项目模块中有一个场景,允许用户在表单中输入任意数量的值。我给了字段一个数组名称但是当我尝试在我的控制器中获取这些值时,它只返回数组的第一个值。我已经使用java-script动态地追加新的输入字段。
我无法弄清楚自己犯了什么错误。
这是我的代码。
我的观点
<h1> <small>Order Details</small></h1>
<table class="table " id="dynamic_field">
<tr>
<td>
<input type="text" name="product_name[]" id="name" class="form-control name_list" placeholder="Product Name">
</td>
<td>
<button type="button" name="submit" id="add" class="btn btn- success">Add More</button>
</td>
</tr>
</table>
JavaScript代码
<script type="text/javascript">
var i = 1;
$('#add').click(function(){
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><input type="text" name="product_name[]" id="last_class" class="form-control name_list" placeholder="Product Name"></td><td><button type="button" name="remove" class="btn btn-danger btn_remove" name="remove" id="'+i+'"> X</button></td></tr>')
});
$(document).on('click','.btn_remove',function() {
var button_id = $(this).attr("id");
$("#row"+button_id+"").remove();
});
</script>
当我尝试使用print_r
打印出输入字段数组时,它只返回数组的第一个值,即使我们可能添加了多个输入字段。
答案 0 :(得分:0)
更改脚本并检查
<script type="text/javascript">
var j = 1;
var i = 1;
$('#add').click(function()
{
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><input type="text" name="product_name['+ j +']" id="last_class" class="form-control name_list" placeholder="Product Name"></td><td><button type="button" name="remove" class="btn btn-danger btn_remove" name="remove" id="'+i+'"> X</button></td></tr>');
j++ ;
});
$(document).on('click','.btn_remove',function()
{
var button_id = $(this).attr("id");
$("#row"+button_id+"").remove();
});
</script>
答案 1 :(得分:0)
在你的控制器中试试这个
$names=$this->input->post('product_name') ;
foreach($names as $pname) {
echo $pname;
}