Php 当用户未选择选项时,$\u POST[';status';][$index]为空
我有一个可用性跟踪器,它有许多行代表用户,每行有选择/选项框(确切地说是7个)。这给了我一个7*num\u用户选择框的可能性 我的UI如下所示:Php 当用户未选择选项时,$\u POST[';status';][$index]为空,php,html,sql,Php,Html,Sql,我有一个可用性跟踪器,它有许多行代表用户,每行有选择/选项框(确切地说是7个)。这给了我一个7*num\u用户选择框的可能性 我的UI如下所示: Monday Tuesday Wednesday Thursday ------------------------------------------ |Name 'status' 'status' 'status' 'status'| ------------------------------------------ |Name
Monday Tuesday Wednesday Thursday
------------------------------------------
|Name 'status' 'status' 'status' 'status'|
------------------------------------------
|Name 'status' 'status' 'status' 'status'|
------------------------------------------
|Name 'status' 'status' 'status' 'status'|
------------------------------------------
其中每个名称都是一个标签,“状态”是一个选择选项框
<table>
<tr>
<th>
</th>
<th>
Monday
<br/>
Jul 03, 2017
</th>
<th>
Tuesday
<br/>
Jul 04, 2017
</th>
</tr>
<tr>
<td>
Name
</td>
<td>
<select name=status[] style = "color: ; background-color: ""onChange="setColor(this)" >
<option disabled selected value> -- select an option -- </option>
<option value='Available' style = "color: #000000; background-color: #b6d7a8">Available</option>
<option value='Unavailable' style = "color: #ffffff; background-color: #000000">Unavailable</option>
</select>
</td>
<td>
<select name=status[] style = "color: ; background-color: " onChange="setColor(this)" >
<option value='Available' style = "color: #000000; background-color: #b6d7a8">Available</option>
<option value='Unavailable' style = "color: #ffffff; background-color: #000000">Unavailable</option>
</select>
</td>
</tr>
</table>
星期一
2017年7月3日
星期二
2017年7月4日
名称
首先为每个框的状态指定一个固定索引,例如:
<select name="status[3]" ...>
现在像前面一样循环,但检查该索引是否存在:
for ($day = 0; $day < 7; $day++) {
if (!isset($_POST['status'][$index])) {
// value was not selected, maybe use a default
} else {
$status = $_POST['status'][$index];
}
// ...
}
($day=0;$day<7;$day++)的{
如果(!isset($_POST['status'][$index])){
//未选择值,可能使用默认值
}否则{
$status=$_POST['status'][$index];
}
// ...
}
如果您想为status传递一个默认值(例如“status”)并避免sql注入,那么请使用准备好的语句(以避免sql注入),并在PHP中尝试以下操作:
$status = empty($_POST['status'][$index])?"status":$_POST['status'][$index];
您有此标记的html,但表单代码的questionupdate问题中没有html。稍微离题一点,您的代码片段可能是演示SQL注入的一个非常好的示例。这不是您当前的问题,但是,代码固有的另一个问题。在您的表单中,飞行员id、日期和飞行员的特定状态之间没有关联。这本身就是有缺陷的。每个单元格/select应该标识一个特定的试点/日组合。@gview,我在动态构建表单时考虑过这样做。因此,我应该使用id和日期构建一个标识符,分配给每个选择框,然后在我进行更新时通过$_POST['3_2017-06-26']检索该标识符?
$status = empty($_POST['status'][$index])?"status":$_POST['status'][$index];