【发布时间】:2018-07-06 15:20:06
【问题描述】:
我正在开发一个模块,管理员可以在该模块中查看用户列表,即未批准、已批准和列表中的所有用户。我添加了一个功能,其中提供了一个选择下拉列表,它列出了数据库中的批号。现在,当管理员从下拉列表中选择一个批号,然后选择三个无线电之一,即已批准、未批准和所有列表必须基于所选的批号。到目前为止,我所做的只是基于收音机获取用户列表。我也需要使用批号来实现这一点,以便管理员首先从下拉列表中选择批号,然后选择所需的收音机以查看列表。如何实施?我正在为此发布我的代码,任何见解或帮助都会非常有帮助。
<form action="" method="POST">
<div class="col-md-6">
<div class="col-md-4">
<label for="username" class="control-label">Batch No. :
</label>
</div>
<div class="col-md-8">
<select name="batchnumber" class="form-control" required id="batchno" >
<option value="">select batch number
</option>
<?php
$sql = mysql_query("SELECT DISTINCT rpp_regn_bulkbatch_no,rpp_id FROM tbl_regn_prescribed_parameters where rpp_regn_bulkbatch_no != 0");
while ($row = mysql_fetch_assoc($sql)){
echo "<option value=" . $row['id'] . ">" . $row['rpp_regn_bulkbatch_no'] . "</option>";
}
?>
</select>
</div>
</div>
<input type='radio' name='users' value='unapproved' checked /> Unapproved Candidates
<input type='radio' name='users' value='approved' /> Approved Candidates
<input type='radio' id='show' name='users' value='all' /> All Candidates
<input type="submit" value="View Candidates" id="submit" class="btn btn-success">
对于 PHP,
if((isset($_POST['users'])) && (isset($_POST['batchnumber'])) ){
$users=$_POST['users'];
$batchnumber= $_POST['batchnumber'];
}else{
$users='';
$batchnumber='';
}
switch ($users)
{
case "all":
$sqlQuery = "SELECT * FROM tbl_user WHERE type =3 ";
break;
case "approved":
$sqlQuery = "SELECT * FROM tbl_user WHERE type =3 AND status =1"; break;
case "unapproved":
$sqlQuery = "SELECT * FROM tbl_user WHERE type =3 AND status =0";
break;
}
【问题讨论】:
-
有几件事:首先,使用准备好的语句来避免 SQL 注入。接下来,将无线电的值属性更改为数据库中的值。 IOW,而不是“批准”,使用“1”。您将需要创建一个 SQL 语句,该语句在其 where 子句中使用表单提供的值。对于状态变量,您可能需要将 all 的 val 设置为“0,1”。并使用
status in ($status)。这看起来像status in (1)表示已批准,status in (0,1)表示完成的 SQL 语句中的所有。 -
感谢您的宝贵时间。最后自己修好了。 :)
标签: php mysql drop-down-menu radio-button