0

現在、クエリオプションを表示してフォームの検証を行うページと、クエリを処理して検証が成功した場合に結果を表示する別のページがあります。ユーザーがクエリを変更するたびに2つのページを行ったり来たりする必要がないように、これら2つのページを組み合わせようとしています。

2ページのプロセスの構造は次のとおりです。

**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
}

私は、検索ボックスと結果が1つのページにある検索エンジンページに単純に実装されている概念を見てきました。選択ボックスと入力ボックスの両方を含むフォームで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 に答える