我花了一个多星期的时间试图让它发挥作用,但我被难住了。所以我有5个类别的下拉菜单,旁边有一个搜索表单,你可以在其中输入关键字来搜索类别。我希望有5个查询,它们使用一个关键字来使用php和SQL server搜索每个类别。如何更改查询以匹配下拉选择?我想用JavaScript把一个变量传递给php,但我不是最好的程序员,这个想法对我来说太多了。所以选择第一类意味着输入搜索表单的关键字将运行查询一等。
谢谢。
这是我的问题:
$term=$_POST['term'];
$tsql = "select * from personnel where SURNAME like '%" . $term . "%'";
$stmt = sqlsrv_query( $conn, $tsql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
if( $stmt === false)
{
echo "Error in query preparation/execution.'n";
die( print_r( sqlsrv_errors(), true));
}
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
echo 'NUMBER: '.$row['SNUM'];
echo '<br/> Jobtitle: '.$row['JOBTITLE'];
echo '<br/> Last Name: '.$row['SURNAME'];
echo '<br/> Manager: '.$row['MANAGER'];
echo '<br/> Sex: '.$row['SEX'];
echo '<br/> Join Date: '.$row['JOINDATE'];
echo '<br/> Division: '.$row['DIV'];
echo '<br/> Salary: '.$row['SALARY'];
echo '<br/> Bonus: '.$row['BONUS'];
echo '<br/><br/>';
}
我的表格:
<form action="searchBar.php" method="post">
<input id="searchstyle" type="text" name="term" />
<input id="searchbutton" type="submit" name="submit" value="Submit" />
</form>
下拉菜单:
<form name="myform" id="dropdown" action="dropsearch.php" method="POST">
<select name="dropdownmenu">
<option value="0" selected="selected">Select a category</option>
<option value="Men">Men</option>
<option value="Women">Women</option>
<option value="Youth">Youth</option>
<option value="Accessories">Accessories</option>
<option value="Teamwear">Teamware</option>
</select>
</form>
您必须首先使用POST作为方法创建一个表单
这里有一个很好的例子:
<form name="myform" action="destination.php" method="POST">
<select name="mydropdown">
<option value="1">Fresh Milk</option>
<option value="2">Old Cheese</option>
<option value="3">Hot Bread</option>
</select>
</form>
在destination.php文件中,您必须生成一个switch
语句,以查看您传递给脚本的值。
switch ($_POST['mydropdown']) {
case 1:
$query = "first mysql query";
break;
case 2:
$query = "2nd mysql query";
break;
case 3:
$query = "3rd mysql query";
break;
}
之后,您将不得不执行您的查询:
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
请注意,这是一种非常简单的方法,但您必须根据自己的需求进行调整。
为什么选择javaScript?
无论如何,完全猜测一下,你的表格会是这样的:
<form method="get" action="search.php">
<select name="catId">
<option value="1">Cat 1</option>
<option value="2">Cat 2</option>
</select>
<input type="search" name="keyword" value="<?=$_GET['keyword']?>" />
<input type="submit" name="submitFrm" value="Search" />
</form>
当提交时,你需要抓住关键词+类别来进行搜索,例如
if (isset($_GET['submitFrm'])) {
$keyword = $_GET['keyword'] // you'll want to clean get values before going into sql
$catId = $_GET['catId']; // same here
// build SQL query
$sql = "SELECT * FROM `searchable` WHERE `keyword` LIKE '%".$keyword."%' AND `catId`='".$catId."';
// execute query
// do your other stuff
}
但实际上,如果不知道自己已经在做什么,就很难帮上忙。这只是你尝试做什么的一个非常基本的例子。
我假设您已经有了将关键字发送到php脚本以执行查询的方法。只需将类别发送回即可。
如果您是通过一个带有新页面加载的表单来执行此操作,请为<select>
下拉列表指定一个名称,它将可以通过php中的$_POST
、$_GET
或$_REQUEST
(不建议)超级全局访问。
<form method="post" action="query.php">
<input type="text" name="mykeyword" />
<select name="mycategory">
<option value="1" selected>category 1</option>
<option value="2">category 2</option>
<option value="3">category 3</option>
<option value="4">category 4</option>
<option value="5">category 5</option>
</select>
<input type="submit" value="search" />
</form>
在php脚本中:
$keyword = $_POST['mykeyword'];
$category = $_POST['mycategory']; // values of 1 to 5
如果您是通过AJAX实现的,只需将select元素的值作为参数之一即可。
请张贴您的代码。