我有一个搜索框,用户可以搜索他们喜欢的案例。我按日期订购了搜索结果,但我想让用户选择它,他们可以自己选择:
$orders = array("date","price"); //field names
$key = array_search($_GET['sort'],$orders)); // see if we have such a name
$orderby = $orders[$key]; //if not, first one will be set automatically. smart enuf :)
$quer = "SELECT*FROM ".$db_table." WHERE
`case`=
'apartment'
AND `field`=
'sell'
ORDER BY
$orderby";
$query=mysqli_query($connect,$quer)
or die(mysqli_error());
?>
<?php while($row = mysqli_fetch_array($query)):
echo "price ";
echo "address ";
//to simplify the code I do not write the rest
?>
<?php endwhile;?>
例如,按日期或价格或其他方式订购。我该怎么办?
用户可以从下拉列表中获取值:
<select>
<option value="date">order by date</option>
<option value="price">order by price</option>
</select>
答案 0 :(得分:2)
这里有一个例子,你可以通过允许用户按什么来选择顺序,甚至是ASC / DESC(由于设置代码值也不受MySQL注入)。如果不需要,您可以删除复选框,但不要忘记在查询中删除该部分:
if (!empty($_POST['dropdownOption']))
{
$orderBy = ($_POST['orderValue'] == "date") ? "date" : "price";
$orderType = (!empty($_POST['orderType'])) ? "DESC" : "ASC";
$quer = "SELECT * FROM TABLE WHERE `case` = 'apartment' AND `field` = 'sell' ORDER BY ".$orderBy." ".$orderType."";
$query = mysqli_query($connect, $quer) or die(mysqli_error());
}
?>
<form method="post" action="">
<select name="orderValue">
<option value="date">order by date</option>
<option value="price">order by price</option>
</select><br>
<input type="checkbox" name="orderType" value="1">In descending order?</input><br>
<input type="submit" name="dropdownOption" value="Apply">
</form>
请注意,我将此作为表单提供(因为我不知道您的网站是什么样的,我不知道您是否是Ajax或其他。如果您是Ajax,然后你需要进行小的改动,实际上)。在CSS的帮助下,您可以实现这一点,就好像它只是一个选择菜单。