我正在尝试使用 HTML 选择下拉框来过滤 mysql 结果表。我的过滤器正在工作,但我想选择再次显示“全部”,但我得到的只是一组空白的结果。然后,当我刷新时,它保留 $POST 值,我希望重置该值,以便我的“所有”结果将显示为默认值?干杯!
$sql = "SELECT * FROM books";
if(isset($_POST['value'])) {
$catvalue = $_POST['value'];
$sql = "SELECT * FROM books WHERE category = '$catvalue'";
} else if($catvalue == 'all'){
$sql = "SELECT * FROM books";
}
$rs_result = mysql_query ($sql);
下面是我的选择过滤器表单。
<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='form_filter' >
<select name="value">
<option value="All" selected="selected">All</option>
<option value="Design">Design</option>
<option value="Photography">Photograpy</option>
</select>
<br />
<input type='submit' value = 'Filter'>
</form>
最佳答案
<option value="All" selected="selected">All</option>
您使用了带有大写“A”的“全部”。 PHP 区分大小写,因此您的 php 代码应如下所示:
if(isset($_POST['value']) and $_POST['value']!='All') {
$catvalue = addslashes($_POST['value']);
$sql = "SELECT * FROM books WHERE category = '$catvalue'";
} else {
$sql = "SELECT * FROM books";
}
$rs_result = mysql_query ($sql);
关于PHP 重置 $POST 值并列出所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30301658/