从动态创建的表单中检索 PHP 中的数据



我正在使用Javascript在表单中动态创建输入字段。例如,如果用户输入 3,我的脚本应该创建 3 个输入字段,其名称属性为成员 1、成员 2 和成员 3.如何使用 DOM 为此类元素设置 name 属性?以及如何使用 post 方法访问 PHP 中这些字段中的数据?

这是我的示例代码。

<?php session_start(); ?>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function addFields(){
var number = document.getElementById("member").value;
var container = document.getElementById("container");
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (i=0;i<number;i++){
container.appendChild(document.createTextNode("Member " + (i+1)));
var input = document.createElement("input");
input.type = "text";
input.name = "Member"+i;
container.appendChild(input);
container.appendChild(document.createElement("br"));
}
}   
</script>
</head>
<body>


<form action="create.php" method="post">
<h2>Create Document :</h2>

Document Description :<input type="text" name="document_description" >
Number of members: (max. 10)<input type="text" id="member" name="number_of_receipents" value=""><br />
<a href="#" id="filldetails" onclick="addFields()">Fill Details</a>
<input type="button" value="Fill Details" name="filldetails" onclick="addFields()">
<input type="submit" name="Submit" button="submit">
<div id="container"/>

</form>
</body>
</html>

与其将它们命名Memberx不如将它们命名为Member[]

然后$_POST['Member']将返回所有提交值的数组

array (size=1)
'Member' => 
array (size=3)
0 => string 'Value1' (length=6)
1 => string 'Value 2' (length=7)
2 => string 'Value3' (length=6)

示例中的代码使用:

<?php
var_dump($_POST);
?>
<form method="POST">
<input type="text" name="Member[]" />
<input type="text" name="Member[]" />
<input type="text" name="Member[]" />
<button type="submit">GO</button>
</form>

最新更新