添加到使用 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。我想你会发现你根本不需要它。
我试着到处寻找我的问题的解决方案,但似乎找不到,所以我决定自己问。嗯,我正在做一个项目,我用 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。我想你会发现你根本不需要它。