0

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

两页进程的结构如下:

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

4

1 回答 1

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;
}
于 2012-08-19T14:34:45.113 回答