2011-02-04 7 views
0

フォーム内で選択するラジオボタンに応じて、ハイキング、ハイキンググループ、ハイカーを検索できるようにする必要があるフォームがあります。さまざまなクエリになるフォームを実装する

明らかに、これらの3つのケースのいずれにおいても、クエリはデータベース内の異なるテーブルであり、異なる使いやすさを持っています。だから私はおそらく私が仮定している1つの場所でこれらのすべてを処理すべきではありません。皆さんは同意しますか?

このようなケースを処理するには、どのような良い方法がありますか?リクエストをシングルフォーム処理モジュールにリダイレクトしようとしましたが、リダイレクトしようとしていたURLでPOSTリクエストを作成するのに問題がありました。

感謝のアイデア/提案、 アレックス

答えて

1

私は1つのフォームからこれを扱う問題は表示されません。検索タイプを渡し、タイプ、検索用語などに基づいて適切なクエリを作成します。クエリが全く異なる場合でも、入力のように聞こえるので、収集は非常に簡単です。異なるページで結果を表示することもできますが、処理は1つのフォームと1つのスクリプトで簡単に処理できます。

クイック例:

//get variables out of POST 

if ($search_type == "hike") 
{ 
    //put together a hike query, get results 
    //call script to display hikes 
} 
elseif ($search_type == "group") 
{ 
    //put together a group query, get results 
    //call script to display hikes 
} 
elseif(...) //etc, etc 
+0

私はそれを得ていますが、これはUXのために良い解決策のようには思えません。問題#1は、これがif/elseの結果に依存する場合に、これがさらに混乱することになります。問題2は、私がスクリプトを持っていて完全なコントローラではないので、異なるデータを表示するページにリダイレクトする方法がわからないことです:hikes/groups/hikers – Genadinik

+0

複雑なスクリプトが心配ならさまざまな検索を処理する場合は、別々のフォームを検討することができます。 JavaScriptを使用して、選択した検索タイプに基づいてスクリプトの動作を変更することもできます。あるいは、検索と結果を処理するオブジェクトを作成して別のファイルに定義することもできます。また、結果を表示するためにリダイレクトする必要はなく、結果を表示するための準備が整ったスクリプトを含めるだけです。最後に、「混乱」が重大な問題である場合は、複数のスクリプトを作成し、さまざまな動作のために必要に応じてそれらを組み込むことを検討してください。 –

1

あなただけのラジオボタンの値をチェックし、さらにフォームを処理するためのさまざまなメソッドを呼び出すことができます。そうすれば、クエリと関連するコードを完全に別のファイルにまとめることができます。 どこに問題があるのですか?ユーザーエクスペリエンスに関連する画面の後ろの処理方法は?

+0

問題なく別のクエリを呼び出すことはできますが、問題はデータの性質によって3つの異なる方法で表示する必要があることです。最終的なリダイレクトとユーザビリティの問題が増えていると思う。 – Genadinik

+0

あなたのコードを見ることはできませんし、厳格な構造にするためのフレームワークを使用しているのかどうかはわかりませんが、クエリで3つの構造のデータを生成できます各チャンクを表示するための正しいテンプレートを含めます。 'if'や' switch'を使うとそこにコードを書くことができますが、他の関数を呼び出すことも、ifの中にファイル全体を入れることもできます。コードを乱雑にすることなく、非常にうまくいくはずです。 – GolezTrol

関連する問題