我有一个html表单,人们选择过滤mysql结果,例如
<select name="display">
<option value="9999" selected>Display all results</option>
<option value="10">10 results only</option>
<option value="20">20 results only</option>
<option value="50">50 results only</option>
<option value="100">100 results only</option>
</select>
但是如果人们选择让我们说每页50个结果,那么在表单提交之后我希望选项50结果只是被标记为像这样被选中
<option value="50" selected>50 results only</option>
问题是如何使用表格
中的PHP POST或GET来执行此操作答案 0 :(得分:2)
正如我在评论中所说,将一个变量分配给POST数组并在查询中的LIMIT中设置它。
// you can also use isset instead of empty here and GET instead of POST
if(!empty($_POST['display'])) {
$limit = (int)$_POST['display']; // ensure the value is an integer
}
然后将$limit
变量放在查询中以获取LIMIT。
I.e。:(和基本的MySQL)
SELECT col1, col2, col3 FROM TABLE WHERE col_x = 'xxx' LIMIT $limit
这个问题有点不清楚,所以我没有太多其他内容可以补充。
Sidenote:LIMIT(带SELECT)接受其他参数。即:LIMIT 0, 50
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
修改强>
“表单提交后我希望选项50结果只被标记为已选中”
为了保持选择的值,请在select的选项中使用条件语句,并检查它是否等于:
旁注:只有当您的整个代码都在同一个文件中时,这才有效。
<?php
if(!empty($_POST['display'])) {
$limit = $_POST['display'];
$selected = 'selected';
}
?>
<form action="" method="post">
<select name="display">
<option value="9999" <?php if(isset($selected) && $limit==9999 ) {echo $selected; } ?>>Display all results</option>
<option value="10" <?php if(isset($selected) && $limit==10) {echo $selected; } ?>>10 results only</option>
<option value="20" <?php if(isset($selected) && $limit==20){echo $selected; } ?>>20 results only</option>
<option value="50" <?php if(isset($selected) && $limit==50){echo $selected; } ?>>50 results only</option>
<option value="100" <?php if(isset($selected) && $limit==100){echo $selected; } ?>>100 results only</option>
</select>
<input type="submit" value="submit">
</form>
您可以添加其余代码。