介绍一下背景:我正在为一所学校建设交通系统。管理员可以添加配置路由的位置。我有一个刚刚给了一个文本框添加一个地方和添加按钮,以不断添加更多的文本框,这样他就可以一次添加多个地方。问题:用户填写数据,如果他愿意,他可以添加任意数量的输入框并将其发送给控制器。我怎么知道,他加了多少个地方。我不能使用JavaScript验证,因为几个原因。我正在使用php-codeigniter
<div class="control-group">
<input type="hidden" name="count" value="1" />
<div class="control-group" id="fields">
<label class="control-label" for="field1">Enter Place/Stop</label>
<div class="controls" id="profs">
<div class="input-append">
<input autocomplete="off" class="span10" id="field1" name="place_6" type="text" data-items="8"/><button id="b1" class="btn btn-info add-more" type="button">Add more</button>
</div>
<br>
<small>Press button to add another place</small>
</div>
</div>
</div>
和jQuery
$(document).ready(function(){
var next = 1;
$(".add-more").click(function(e){
e.preventDefault();
var addto = "#field" + next;
next = next + 1;
var newIn = '<br /><br /><input autocomplete="off" class="span10" id="field' + next + '" name="place_' + (next+5) + '" type="text">';
var newInput = $(newIn);
$(addto).after(newInput);
$("#field" + next).attr('data-source',$(addto).attr('data-source'));
$("#count").val(next);
});
});
确保为新的和现有的输入提供以"[]"结尾的名称,而不是数字,这样您将在$_POST中获得一个数组。:
<input type="text" name="places[]" />
会给你:
$_POST['places']; # array() with all posted inputs
从这里你可以做一个count()
。
count($_POST['places']);