我正在为我的一位教授开发一个项目,并添加了一种动态添加输入字段的方法,如下所示:
在创建此表单之前,我有6组输入字段,并使用PHP中的以下代码发布它们:
$author1 = $_POST['author1_name'];
$author1uni = $_POST['author1_university'];
$author2 = $_POST['author2_name'];
$author2uni = $_POST['author2_university'];
$author3 = $_POST['author3_name'];
$author3uni = $_POST['author3_university'];
$author4 = $_POST['author4_name'];
$author4uni = $_POST['author4_university'];
$author5 = $_POST['author5_name'];
$author5uni = $_POST['author5_university'];
$author6 = $_POST['author6_name'];
$author6uni = $_POST['author6_university'];
我想通过执行以下操作来设置这些变量:
$num = 1;
if (!empty($_POST['author' . $num]){
$author . $num = $_POST['author' . $num];
$num++;
}
以便发布变量。我读到这被称为变量变量,这是不好的做法。什么是最好的方法?我是编程的新手,所以如果这个问题愚蠢或者不适合Stack Overflow我很抱歉,但我花了好几个小时才知道这是不好的做法而且不想两次犯同样的错误。提前感谢您提供的任何帮助。
答案 0 :(得分:0)
您可以多次使用以下代码:
<input name="author[]" type="text"/>
<input name="uni[]" type="text" />
发布后
$_POST['author'];
$_POST['uni'];
这将包含所有字段值,如下所示循环:
foreach($_POST['author'] as $key => $val) {
echo $val." and ".$_POST["uni"][$key];
}
答案 1 :(得分:0)
使用数组作为视图中的输入名称,如此
name="author_name[]"
name="author_university[]"
在php中
foreach($_POST['author_name'] as $key => $val) {
echo $val."====>".$_POST["author_university"][$key];
//will echo corresponding author name and university.
}
供您参考,请使用isset()
,但也可以正常使用。