![](/img/trans.png)
[英]Get event data from an HTML drop down list (the list that drops down when a drop down list is selected) using jQuery / plain jscript
[英]Fetch data from mysql database using drop down list and then use search function to filter data from selected drop down list option
我想结合使用带有搜索功能(搜索栏和“确定”按钮)的下拉列表(带有过滤器/选项)。
当我在下拉列表中选择过滤器/选项时,例如“ Team”。 然后,下拉列表应注意该列表已更改为过滤器/选项“ Team”。 之后,我使用搜索功能,在其中输入搜索词,例如“ USA”,然后按确定按钮。 一旦按下“确定”按钮,就会出现一个类似sql的查询:SELECT * FROM mytable WHERE Team ='USA'; 生成以获取数据库“ mytable”中所有匹配的行。
希望我能更好地理解自己,谢谢大家的时间!
这是我的代码:
<html>
<head>
<title>AiFind</title>
<link rel="stylesheet" href="Style.css">
<script src="logic.js"></script>
</head>
<body>
<h1>AiFind</h1>
</body>
</html>
<?php
include "connection.php";
$sql = "SELECT * FROM mytable";
if (isset($_POST['search'])) {
$search_term = mysql_real_escape_string($_POST['search_box']);
$sql .= " WHERE F_ar = '$search_term' ";
$sql .= " OR Postnr = '$search_term' ";
$sql .= " OR Postort = '$search_term' ";
$sql .= " OR Vardgivare = '$search_term' ";
$sql .= " OR Team = '$search_term' ";
$sql .= " OR Orsak = '$search_term' ";
$sql .= " OR Planerat_datum = '$search_term' ";
$sql .= " OR fran = '$search_term' ";
$sql .= " OR AAA_diam = '$search_term'; ";
}
$query = mysql_query($sql) or die(mysql_error());
?>
<form name="Select_filter" method="POST" action="VGR_data_display.php">
<select id="dropdown" name="filter">
<option value=""></option>
<option value="1">ID</option>
<option value="2">Alder</option>
<option value="3">Postnummer</option>
<option value="5">Postort</option>
<option value="6">Vårdgivare</option>
<option value="7">Planerat Datum</option>
<option value="8">Status</option>
<option value="9">AAA_diameter</option>
</select>
</form>
<!--search bar for search term input -->
<form name ="search_form" method="POST" action="VGR_data_display.php">
<input id="search_box" type="text" name="search_box" value="" />
<input id="submit" type ="submit" name ="search" value ="Ok">
</form>
<table style="margin:auto;" id="table" border='1'>
<tr>
<th>ID</th>
<th>F_ar</th>
<th>Postnr</th>
<th>Postort</th>
<th>Vardgivare</th>
<th>Team</th>
<th>Orsak</th>
<th>Planerat_datum</th>
<th>fran</th>
<th>AAA_diam</th>
</tr>
<?php while($row = mysql_fetch_array($query)) { ?>
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo $row['F_ar']; ?></td>
<td><?php echo $row['Postnr']; ?></td>
<td><?php echo $row['Postort']; ?></td>
<td><?php echo $row['Vardgivare']; ?></td>
<td><?php echo $row['Team']; ?></td>
<td><?php echo $row['Orsak']; ?></td>
<td><?php echo $row['Planerat_datum']; ?></td>
<td><?php echo $row['fran']; ?></td>
<td><?php echo $row['AAA_diam']; ?></td>
</tr>
<?php } ?>
更改您的下拉列表,以便选择值是数据库列名称。 即
<select id="dropdown" name="filter">
<option value=""></option>
<option value="ID">ID</option>
</select>
然后在PHP中:
if (isset($_POST['search'])) {
$search_term = mysql_real_escape_string($_POST['search_box']);
$column = mysql_real_escape_string($_POST['filter']);
}
的SQL
SELECT * FROM mytable where $column = '$search_term'
这意味着添加新选项很容易,并且节省了if / switch语句。 它还允许您在行内内置多个选项。
注意:如果您担心要在表格中显示列名,可以在构建下拉列表时对其进行加密,然后在需要使用它们时进行解密
编辑-基于评论。
在使用SQL之前:
$allowed[] = array("ID") //Add all allowed columns.
if (in_array($column, $allowed))
{
//Run SQL
}
您可以在构建DDL时自动构建该数组。
如果我已正确理解,则只想搜索下拉列表中已选择的列。 然后您要使用此:
if (isset($_POST['search'])) {
$search_term = mysql_real_escape_string($_POST['search_box']);
switch($_POST['filter']) {
Default:
$sql .= " WHERE F_ar = '$search_term' ";
break;
case 1:
$sql .= " WHERE Postnr = '$search_term' ";
break;
case 2:
$sql .= " WHERE Postort = '$search_term' ";
break;
case 3:
$sql .= " WHERE Vardgivare = '$search_term' ";
break;
case 4:
$sql .= " WHERE Team = '$search_term' ";
break;
case 5:
$sql .= " WHERE Orsak = '$search_term' ";
break;
case 6:
$sql .= " WHERE Planerat_datum = '$search_term' ";
break;
case 7:
$sql .= " WHERE fran = '$search_term' ";
break;
case 8:
$sql .= " WHERE AAA_diam = '$search_term'; ";
break;
}
}
<form name="Select_filter" method="POST" action="VGR_data_display.php"> <select id="dropdown" name="filter"> <option value=""></option> <option value="1">ID</option> <option value="2">Alder</option> <option value="3">Postnummer</option> <option value="5">Postort</option> <option value="6">Vårdgivare</option> <option value="7">Planerat Datum</option> <option value="8">Status</option> <option value="9">AAA_diameter</option> </select> <!--search bar for search term input --> <input id="search_box" type="text" name="search_box" value="" /> <input id="submit" type ="submit" name ="search" value ="Ok"> </form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.