添加到使用 JavaScript 生成的输入字段的数据库数组

Add to database array of input fields generated with JavaScript

我试着到处寻找我的问题的解决方案,但似乎找不到,所以我决定自己问。嗯,我正在做一个项目,我用 JavaScript 创建多个输入字段,代码如下:

HTML:

<form id="buildyourform">
<legend>Registration Page</legend>
    <hr>
<input type="button" value="New Registry" class="add" id="add" />
<input type="submit" value="Save" id="submitForms" />
    <hr>

    <script>myscript</script>

</form>

上面<script>标签内的JavaScript代码:

<script>
        $(document).ready(function() {
            $("#add").click(function() {
                var lastField = $("#buildyourform div:last");
                var intId = (lastField && lastField.length && lastField.data("idx") + 1) || 1;
                var fieldWrapper = $("<div class=\"fieldwrapper\" id=\"field" + intId + "\"/>");
                fieldWrapper.data("idx", intId);
                var fName = $("<input type=\"text\" class=\"fieldname\" placeholder=\"Name of New Registry\" name=\"field\" />");
                var removeButton = $("<input type=\"button\" class=\"remove\" value=\"x\" />");

                removeButton.click(function() {
                    $(this).parent().remove();
                });

                fieldWrapper.append(fName);
                fieldWrapper.append(removeButton);
                $("#buildyourform").append(fieldWrapper);
            });
        });
</script>

事情是这样的,它允许我创建和删除动态输入字段,问题是它们都是用相同的名称生成的,所以我的问题是:我如何添加它们中的每一个并且它们在我的数据库中的价值?这是我当前的 php 代码:

<?php
    require_once 'conector_superadmin.php';
    $link = connect($conn);

    $NameRegistryInput = $_POST['field'];

    $sql = "INSERT INTO `database` (`idRegistryName`, `Name`) VALUES (NULL, '$NameRegistryInput');";

    mysqli_query($link, $sql);
?>

如果这些是静态字段,我不会有问题,但它们是动态的这一事实让我陷入困境,因此非常感谢任何帮助。

编辑

我的新 PHP 代码现在看起来像这样(我还在输入字段中的名称中添加了“[]”,它现在像这样 "field[]"):

require_once 'conector_superadmin.php';
    $link = connect($conn);


        foreach ($_POST['field'] as $NameRegistryInput) {
            $sql = "INSERT INTO `database` (`idRegistryName`, `Name`) VALUES (NULL, '$NameRegistryInput');";
            mysqli_query($link, $sql);
        }

还是不行

PHP 处理包含多个与数组同名的元素的表单 post - 只要您将 [] 添加到名称属性

所以,

var fName = $("<input type=\"text\" class=\"fieldname\" placeholder=\"Name of New Registry\" name=\"field[]\" />");

然后

foreach ($_POST['field'] as $NameRegistryInput) {
  $sql = "INSERT INTO `database` (`idRegistryName`, `Name`) VALUES (NULL, '$NameRegistryInput');";
  mysqli_query($link, $sql);
}

现在,我看到您在 javascript 中为要添加到页面的每个元素创建 ID。我想你会发现你根本不需要它。