避免使用php重新加载页面或重置选择下拉列表

时间:2019-05-14 13:07:36

标签: php

我是PHP编程和后端新手。我知道自己在做什么,但是在网上找不到适合我情况的合适解决方案时遇到了麻烦。
基本上,我有一个表单(2个文本字段,3个下拉列表),用于过滤从SQL Server(有效)获取的数据。但是,当我按下“过滤器”按钮并获得所需的结果时,页面将重新加载并重置表格。现在我有了过滤的记录,但是我不知道我曾经使用过什么过滤器。
如果可以的话,我可以插入一个<?php ... ?>,但事实是我已经在使用php来获取下拉值了。不要以为我可以将php放到php中。 包括if-else的意思是:
echo '<option value="' . $row['status'] . '"' . if($prod_status == $row['status']): echo ' selected="selected"' . '>' . $row['status'] . '</option>';
这是代码:

<label for="prod_status_filter">Prod Status</label>
<select class="form-control" id="prod_status_filter" name="prod_status_filter">
<?php
    $query_status = 'select DISTINCT status FROM analytics.laborrecords ORDER BY status ASC';
    $result = sqlsrv_query($conn, $query_status);
    while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC))
    {
        echo '<option value="' . $row['status'] . '">' . $row['status'] . '</option>';
    }
?>
</select>

这是下拉菜单之一。

我要:
1.停止重新加载页面,以使过滤器下拉列表保持不变。 (AJAX无法正常工作,我有3个下拉菜单,其中有很多选项,制作很多getElementById行似乎不是一个好习惯)
2.让页面重新加载,但是使用“重置”按钮将设置的值保持在我设置的状态,直到我想重置它们为止。

1 个答案:

答案 0 :(得分:2)

您必须使用提交的表单数据填充表单。它应该位于$_POST$_GET中。

检查$_POST['prod_status_filter']的值是否与$row['status']中的值匹配,如果匹配,则选择回显。

请确保清理表单数据。 从不信任用户输入。