Example of the SQL/php code, the second query is applicable。我创建了一个将id变量提交到MySQL数据库的用户输入。这些用户输入在表单中被多次克隆,从而导致多个重复的ID /名称,但是每个克隆的一个列(称为1列)是不同的。
现在,一旦添加了输入并提交了表单,它只会将最后一个表单项附加到数据库表中,这是我所期望的。
是否有可能将所有这些副本添加到表中的方法(也许基于第1列的差异)?我在想类似的东西:对于每个Column 1 INSERT INTO database1 ...
编辑
某些代码:
HTML:
<style>
.hidden {
display: none;
}
</style>
<body>
<div id="samplesinfo" class="samplesinfo hidden">
<input type="text" id="column1" name="column1" value="1" readonly>
<input type="text" name="column2">
</div>
<button id="btn">Paste</button>
<div>
<h3>Paste Below</h3>
</div>
<form>
<div id="paste">
</div>
<button type="submit" name="submit">Submit</button>
</form>
jQuery:
$(document).ready(function() {
var sample = 1;
$("#btn").click(function() {
var element = $(".samplesinfo.hidden").clone(true);
element.removeClass("hidden").appendTo("#paste:last");
sample++;
$("#column1").val(sample)
});
});
和php:
if (isset($_POST['submit'])) {
$column1 = mysqli_real_escape_string($conn, $_POST['column1']);
$column2 = mysqli_real_escape_string($conn, $_POST['column2']);
$query = "INSERT INTO db1 ('column1', 'column2')
VALUES ('$column1', '$column2');";
mysqli_query($conn, $query);
header("Location: ../web_page/analysis_page.php?add_order=success");
}
答案 0 :(得分:1)
仅将新输入发送到后端是因为原始#column1
和#column2
在<form>
之外。如果要发送所有内容,请将其放在<form>
中。
接下来,如果您想将所有内容插入数据库并在更改现有记录的同时更新它们,则可以want to read this。
如果要添加同一对象的多个记录,则必须将它们作为相同类型的记录发送到后端,然后将它们视为数组。
<form>
<input name="column1[0][name]" value="first one">
<input name="column1[1][name]" value="second one">
<input name="column1[2][name]" value="third one">
</form>
提交此示例将为您提供3个column1数组条目,这些条目具有名称和相关值。
// example value of received data
$_POST = [
'column1' => [
0 => [
'name' => 'first one',
],
1 => [
'name' => 'second one',
],
2 => [
'name' => 'third one',
],
],
];
要将全部转储到数据库中,请在foreach()
循环中使用查询。如:
foreach ($_POST['column1'] as $column) {
$query = "INSERT INTO db1 ('column1') VALUES (" . $column['name'] . ");";
}
很明显,您必须针对用例在此处“ n”对其进行一些更新,并且不要忘记清理此数据。
答案 1 :(得分:0)
我用类替换了id,并在输入字段名称中添加了[],因此$_POST['column1']
和$_POST['column2']
是数组。
HTML:
<style>
.hidden {
display: none;
}
</style>
<body>
<div id="samplesinfo" class="samplesinfo hidden">
<input type="text" class="column1" name="column1[]" value="1" readonly>
<input type="text" class="column2" name="column2[]">
</div>
<button class="btn">Paste</button>
<div>
<h3>Paste Below</h3>
</div>
<form>
<div class="paste">
</div>
<button type="submit" name="submit">Submit</button>
</form>
Javascript:
$(document).ready(function() {
var sample = 1;
$(".btn").click(function() {
sample++;
$(".samplesinfo.hidden").find(".column1").val(sample);
var element = $(".samplesinfo.hidden").clone(true);
element.removeClass("hidden").appendTo(".paste:last");
});
});
PHP:
if (isset($_POST['submit'])) {
$n = count($_POST['column1']);
for($i = 0; $i<$n; ++$i) {
$column1 = mysqli_real_escape_string($conn, $_POST['column1'][$i]);
$column2 = mysqli_real_escape_string($conn, $_POST['column2'][$i]);
$query = "INSERT INTO db1 (column1, column2)
VALUES ('$column1', '$column2');";
mysqli_query($conn, $query);
}
header("Location: ../web_page/analysis_page.php?add_order=success");
}