【发布时间】:2018-12-17 07:05:31
【问题描述】:
我有一个具有“添加字段”功能的表单。当触发/单击添加字段时,将添加一组新的 price[]、pax[] 和 days[],它将成为一个数组。
我的问题是,当我点击提交按钮时,是否有这样的结果?按此顺序显示它们?
price[0] - pax[0] - days[0]
price[1] - pax[1] - days[1]
price[2] - pax[2] - days[2]
我试过这个,但它只对 [0] 有效,对其余的 [1] 和 [2] 无效。 PHP
foreach() {
// echo here [0]
foreach() {
// echo here [1]
foreach() {
// echo here [2]
}
}
}
下面是我的代码。
<div>
<form method="post">
<div class="" id="buildyourForm">
<input name="price[]" type="number">
<select name="pax[]">
<option value="2">2</value>
<option value="3">3</value>
<option value="4">4</value>
</select>
<select name="days[]">
<option value="2">2 days</option>
<option value="3">3 days</option>
<option value="4">4 days</option>
</select>
<input type="submit" name="submit">
<div>
<input type="button" id="add_field">
</div>
</div>
</form>
</div>
jQuery/Javascript
$(document).ready(function() {
$("#add_field").click(function() {
var lastField = $("#buildyourform div:last");
var intId = (lastField && lastField.length && lastField.data("idx") + 1) || 2;
var fieldWrapper = $("<div id=\"field"+ intId + "\"/>");
fieldWrapper.data("idx", intId);
var layer_1 = $("<label ">Package "+intId+" </label>");
var layer_2 = $("<input name=\"price[]\" type=\"number\" />");
var layer_3 = $("<select name=\"pax[]\"><option value=\"2\">2</value><option value=\"3\">3</value><option value=\"4\">4</value></select>");
var layer_4 = $("<select name=\"days[]\"><option value=\"2\">2 days</option><option value=\"3\">3 days</option><option value=\"4\">4 days</option></select>");
var layer_5 = $("<input name=\"hidden[]\" type=\"hidden\" value\="+intId+"\ />");
var removeButton = $("<input type=\"button\" value=\"X\" />");
removeButton.click(function() {
$(this).parent().remove();
});
fieldWrapper.append(layer_1);
fieldWrapper.append(layer_2);
fieldWrapper.append(layer_3);
fieldWrapper.append(layer_4);
fieldWrapper.append(layer_5);
fieldWrapper.append(removeButton);
$("#buildyourform").append(fieldWrapper);
});
});
【问题讨论】: