如何实现也显示结果的表单验证页面?

时间:2012-08-19 14:30:25

标签: php validation

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

两页过程的结构如下:

**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方法实现类似的东西,其中包含一个包含选择框和输入框的表单。

1 个答案:

答案 0 :(得分:1)

您可以将表单操作设置为自身(或者将其留在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;
}