【发布时间】:2015-08-01 11:24:02
【问题描述】:
我正在创建一个包含复选框的表单。一行有 5 个复选框。如果用户再添加一行,就会有另外 5 个复选框。
我使用的代码,
<tbody id="dataTable">
<tr>
<td>
<input type="text" class="form-control" name="startTime[]">
</td>
<td>
<input type="text" class="form-control" name="endTime[]">
</td>
<td>
<input type="checkbox" name="Monday[0]" value="1">
</td>
<td>
<input type="checkbox" name="Tuesday[0]" value="1">
</td>
<td>
<input type="checkbox" name="Wednesday[0]" value="1">
</td>
<td>
<input type="checkbox" name="Thursday[0]" value="1">
</td>
<td>
<input type="checkbox" name="Friday[0]" value="1">
</td>
<td>
<input type="button" class="btn btn-danger" value="Delete" onClick="deleteRow('dataTable')" />
</td>
</tr>
</tbody>
我用于将数据插入数据库的代码,
<?php
if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
} else {
if ($_POST['startTime']) {
foreach ($_POST["startTime"] as $key => $value) {
$endTime = $_POST["endTime"][$key];
$monday = isset($_POST["Monday"][$key]) ? 1 : 0;
$tuesday = isset($_POST["Tuesday"][$key]) ? 1 : 0;
$wednesday = isset($_POST["Wednesday"][$key]) ? 1 : 0;
$thursday = isset($_POST["Thursday"][$key]) ? 1 : 0;
$friday = isset($_POST["Friday"][$key]) ? 1 : 0;
$sql = "INSERT INTO timetableschedule ( startTime, endTime, Monday, Tuesday, Wednesday, Thursday, Friday) " .
"VALUES ('$value', '$endTime', '$monday', '$tuesday', '$wednesday', '$thursday', '$friday')";
mysqli_query($con, $sql);
}
}
echo "1 record added";
mysqli_close($con);
}
?>
假设我按照上图所示的方式提交表单,我在数据库中得到了这个结果,
假设与时间“1600 1700”出现在“1400 1500”行上的值。我希望将值相应地保存为选定的值。
【问题讨论】:
-
将复选框的名称更改为
day[]。这样$_POST['day']的值就变成了一个包含真假信息的数组,其中每一行都与输入中的行相对应。将日期替换为实际日期。 -
基本上你在问:具有行和添加按钮的表单,以及提交按钮。从收到的复选框提交值。我说的对吗?
-
其他选项,在 Javascript 中循环遍历行并以 JSON 格式发布。
-
@Mouser 我不清楚如何使用 JSON
-
您是如何获得您的 html 代码的?以及如何在按钮单击时添加新行?
标签: javascript php database checkbox