我创建了一个 PHP 站点,它基本上是一个带有一些 MySQL 输入表单的站点。
这就是它现在的样子。很简单,填好后点击提交,将数据输入数据库。
http://i.imgur.com/ieMf39f.jpg
这就是我希望它的外观和工作方式。我不希望它能够仅通过一个提交按钮向数据库发送多个查询。
http://i.imgur.com/IdqcJjb.jpg
所以问题是..我如何以最简单有效的方式解决这个问题?
我创建了一个 PHP 站点,它基本上是一个带有一些 MySQL 输入表单的站点。
这就是它现在的样子。很简单,填好后点击提交,将数据输入数据库。
http://i.imgur.com/ieMf39f.jpg
这就是我希望它的外观和工作方式。我不希望它能够仅通过一个提交按钮向数据库发送多个查询。
http://i.imgur.com/IdqcJjb.jpg
所以问题是..我如何以最简单有效的方式解决这个问题?
在每个字段的名称中,使用例如name="opb1[]",这样它就会变成一个数组(opb = array)。
然后你可以这样做:
foreach($opt1 as $k => $_opt1)
if(isset($opb2[$k]) && isset($opb3[$k]) .....etc) {
// use each row e.g. $opb2[$k]...
}
}
您的 HTML 应如下所示:
<input name="name[]" />
<input name="obp1[]" />
<input name="obp2[]" />
<br />
<input name="name[]" />
<input name="obp1[]" />
<input name="obp2[]" />
和你的 PHP:
for($i = 0; $i < count($_POST['name']); $i++) {
// verify if all fields are completed
if(empty($_POST['name'][$i]) || empty($_POST['obp1'][$i])) { // all fields here
// add an error
} else {
$mysqli->query("INSERT INTO my_table VALUES ('" . $mysqli->real_escape_string($_POST['name'][$i]) . "', '" . $mysqli->real_escape_string($_POST['obp1'][$i]) . "')");
}
}