现在我正在尝试创建一个客户管理系统,在该系统中我可以同时添加多个客户。
我有一个javascript脚本,它允许我添加可以填写的关于客户的新行信息,但我在这里的问题是,我如何分别获得每一行的所有信息。
html示例如下:
<input type="text" name="name[]" />
<input type="text" name="lastname[]" />
<input type="text" name="dob[]" />
<hr>
<input type="text" name="name[]" />
<input type="text" name="lastname[]" />
<input type="text" name="dob[]" />
这可以一直持续下去,直到我不再需要更多的田地。
由于我需要为每一行分别向数据库中输入信息,因此我需要一个脚本来自动获取这3个字段,并将其放入类似的mysql命令中
mysqli_query($con, "INSERT INTO customers (name, lastname, dob) VALUES ('" . $name . "', '" . $lastname . "', '" . $dob . "'");
这需要为每一行做。
我试过用foreach和嵌套foreach做一些东西,但我似乎做不到。
提前谢谢。
我会更改您的输入名称,如
<input type="text" name="data[n][name]" />
<input type="text" name="data[n][lastname]" />
<input type="text" name="data[n][dob]" />
其中CCD_ 1从0开始到任意值。然后你可以使用foreach:
foreach($_POST['data'] as $data) {
// $data['name']
// $data['lastname']
// $data['dob']
}
使用准备好的语句,而不是串联字符串。然后使用从每个$_POST
参数数组中获取相应值的foreach
循环。
$stmt = mysqli_prepare($con, "INSERT INTO customers (name, lastname, dob) VALUES (?, ?, ?)");
mysqli_bind_param($stmt, "sss", $name, $lastname, $dob);
foreach ($_POST['name'] as $i => $name) {
$lastname = $_POST['lastname'][$i];
$dob = $_POST['dob'][$i];
mysqli_execute($stmt);
}