如何使下面的mysql查询中的变量$ Category等于下面下拉列表中选择的值?
这似乎是一个似乎无法弄清楚的简单概念。如果页面在下拉列表选项更改时自动运行新查询,那也会很棒。此外,它应默认显示页面首次加载时的所有记录。
MYSQL PHP QUERY
$query = mysql_query("SELECT * FROM tblClients WHERE tblclients.package = 'standard' and tblclients.category = '$Category' LIMIT 0, 9", $connection);
DROPDOWN LIST
<section class="main">
<div class="wrapper">
<div id="dd" class="wrapper-dropdown-3" tabindex="1">
<span>View By Category</span>
<ul class="dropdown">
<?php while ($rows = mysql_fetch_array($query_category)) { ?>
<li><a class="<?php echo $rows['category']; ?>"><?php echo $rows['category']; ?></a></li>
<?php } ?>
</ul>
</div>
</div>
</section>
答案 0 :(得分:4)
如果您不想使用表单并从select中传递选项的值,而是希望用户单击列表中的链接,则可以将该值附加到URL并将其作为get传递参数。
变化:
<li><a class="<?php echo $rows['category']; ?>"><?php echo $rows['category']; ?></a></li>
要:
<li><a href="?category=<?php echo $rows['category']; ?>" class="<?php echo $rows['category']; ?>"><?php echo $rows['category']; ?></a></li>
然后,您可以将该变量作为$ _GET变量进行访问。像:
$selectedCategory = $_GET['category'];
$query = mysql_query("SELECT * FROM tblClients WHERE tblclients.package = 'standard' and tblclients.category = " . $selectedCategory . " LIMIT 0, 9", $connection);
请务必清理用户输入数据。
回复你的评论:
如果要使用选择和选项,可以使用表单。表单的操作将是PHP脚本的URL,它将处理表单元素的选定值。表单的方法可以是GET(你可以像我之前概述的那样处理变量),也可以是POST,你可以使用$ _POST数组而不是$ _GET数组来访问变量。
<form name="form1" action="" method="GET">
<select name="category">
<option value="home">Home</option>
<option value="work">Work</option>
<option value="school">School</option>
</select>
<input type="submit" value="Submit"/>
</form>
或者,您可以使用javascript在select:
的更改时重定向到您的处理代码<select name="category" onchange="location = window.location.href + "?category="+this.selectedIndex.value;">
<option value="home">Home</option>
<option value="work">Work</option>
<option value="school">School</option>
</select>
按照我之前概述的方式处理$ _GET变量。