繁体   English   中英

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

[英]Retrieve data in PHP from a dynamically created form

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM