我是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.让页面重新加载,但是使用“重置”按钮将设置的值保持在我设置的状态,直到我想重置它们为止。
答案 0 :(得分:2)
您必须使用提交的表单数据填充表单。它应该位于$_POST
或$_GET
中。
检查$_POST['prod_status_filter']
的值是否与$row['status']
中的值匹配,如果匹配,则选择回显。
请确保清理表单数据。 从不信任用户输入。