HTML表单从PHP Echo _Post中选择默认值

时间:2016-07-30 01:05:45

标签: php mysql

我有一个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来执行此操作

1 个答案:

答案 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>

您可以添加其余代码。