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

时间:2017-12-09 20:44:01

标签: javascript php html

我正在使用Javascript动态创建表单中的输入字段。就像,如果用户输入3,我的脚本应创建3个输入字段,其名称属性为Member 1,Member 2和Member 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>

1 个答案:

答案 0 :(得分:1)

而不是将它们命名为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>