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

我是 PHP 编程和后端工作的新手。我知道我在做什么,但无法在网上找到与我的情况相符的正确解决方案。

基本上,我有一个表单(2 个文本字段,3 个下拉列表)来过滤我从 SQL Server 获取的数据(有效)。但是,当我按下“过滤器”按钮并获得所需的结果时,页面会重新加载并重置表单。现在我有了过滤后的记录,但我不知道我用什么过滤器来得到它。

我可以插入一个<?php ... ?>if else,但问题是我已经在使用 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. 让页面重新加载,但保持我设置的值直到我想要使用“重置”按钮重置它们。


胡子哥哥
浏览 158回答 1
1回答

回首忆惘然

您必须使用提交的表单数据填充表单。它应该在$_POST或 中$_GET。检查 的值是否与中的值$_POST['prod_status_filter']匹配$row['status'],如果匹配,则回显选择。一定要清理表单数据。永远不要相信用户输入。
打开App,查看更多内容
随时随地看视频慕课网APP