我有一个表单,其中包含多个虚拟字段集。
例如,MyForm:
Name1
Age1
Location1
Name2
Age2
Location2
Name3
Age3
Location3
Submit
如果我允许用户在客户端上动态创建更多字段集,我如何遍历设置了name(x)的所有字段集,并使用整数(1,2,3等)为每个组执行类似的操作)作为唯一标识符?
我想指定一次操作,循环遍历,每次根据字段集的数量更改使用的变量。
现在,我正在为3个硬编码的fireldsets手动完成,但它不会扩展:
伪代码:
if($name1 is set) {
do something using $age1 and $location1
}
if($name2 is set) {
do something using $age2 and $location2
}
if($name3 is set) {
do something using $age3 and $location3
}
谢谢!
答案 0 :(得分:3)
您可以为元素name="name[1]"
,name="name[2]"
等命名。
并在php中执行以下操作:
for($i=1;$i<=count($name);$i++){
// do the stuff.
}
答案 1 :(得分:1)
这样做:
$maxIndex = 3
for(var $i=1; $i<=$maxIndex; $i++){
$name = $_POST["Name$i"];
$age = $_POST["Age$i"];
$location = $_POST["Location$i"];
//do something using $name, $age and $location
}
希望这会有所帮助。干杯
答案 2 :(得分:0)
您应该为输入字段使用数组。然后,您可以创建任意数量的以下块:
<input name="name[]" />
<input name="age[]" />
<input name="location[]" />
在PHP中,您可以遍历这些参数:
foreach($_POST['name'] as $key => $value) {
$name = $_POST['name'][$key];
$age = $_POST['age'][$key];
$location = $_POST['location'][$key];
}
答案 3 :(得分:0)
您可以在php中使用数组来制作
首先来自fome,你可以使用
<?php
//n is no of records u want at one time
$available = $n;
for($i=1; $i<=$available; $i++){
?>
Name <input type=hidden name="pname<?=$i?>" value=<?=$pid?>>
Age<input type=text name="age<?=$i?>" />
Location<input type=text name="age<?=$i?>" />
<?php
}
?>
以动作形式,您可以使用一次保存这些多个记录
<?php
$available_count = $n;
for($i=1; $i<=$available_count; $i++){
$pname = "pname".$i;
$age = "age".$i;
$location = "location".$i;
$pname1 = trim($_POST[$pname]);
$age1 = trim($_POST[$pname]);
$location1 = trim($_POST[$location]);
//now you can insert these values into table/views
}
?>
希望你能找到更好的帮助...