如何实现同时显示结果的表单验证页


How to implement a form validation page that also displays the result?

目前,我有一个页面显示查询选项并进行表单验证,另一个页面处理查询并在验证成功时显示结果。我正在尝试将这两个页面组合在一起,以便用户不需要每次都来回浏览这两个页面来进行一些查询更改。

两页流程的结构如下:

**Validation Page**
if (post detected)
{
 validate input
 if (no error)
 {
  record query options
  redirect to results page
  exit
 }
 else
 {
  output error message
 }
}
display form
**Results Page**
if (query options are set)
{
 process query
 display results
}
else
{
 redirect to validation page
}

我已经看到这个概念只是在搜索引擎页面中实现,其中搜索框和结果在一个页面中。我希望使用 POST 方法实现类似的东西,该方法包含选择框和输入框的表单。

您只需将表单操作设置为自身(或沿action = ""行将其留空,它无论如何都会指向自身,然后使用简单的检查来查看是否已提交任何表单数据,以确定是否应显示空白页面或搜索结果:

if(isset($_REQUEST['searchStuffs']) // Not sure if you are GET or POST'ing
{
    if(!empty($_REQUEST['searchStuffs'])
    {
        // do stuff here to get the form result, then display it
    }
    else
    {
        // The form was submitted empty, so show an error
    }
}
else
{
    // Display the normal search/form page as it hasn't been sent.
}

您还可以使用以下方法(尽管这是一些额外的工作,但我可能会使用它):

$searchBool=false;
if(isset($_REQUEST['searchStuffs']) // Not sure if you are GET or POST'ing
{
    if(!empty($_REQUEST['searchStuffs'])
    {
        if(...)// valid search criteria
        {
            $searchBool=true;
            // Do stuff to get search results
            $searchResults='some output or data';
        }
    }
}
// Echo normal input form
if($searchBool)
{
    echo $searchResults;
}