WEB アプリケーションのページには多くの検索条件があり、場合によっては 1 つのパラメータが多数の値に対応していたり、レンタル ネットワークのように強い上位と下位の関係が存在したりする状況に誰もが遭遇したことがあります:
家のタイプのパラメーターには、ベッドルーム 1 室とリビングルーム 1 室、ベッドルーム 1 室とリビングルーム 2 室などがあります。
このとき、特定のプラグ選択コンディショナーに正しい URL パラメーターを追加する方が面倒なので、一日中繰り返し作業をしないようにするために、次のメソッドを作成しました。
レンタルネットワークの例を参考にしてみましょう (以下は単なるデモンストレーションであり、仕様はありません)。
エリア: 制限なし ('')、エリア 1 (area1)、エリア 2 (area2)、エリア 3 (area3)...
家賃: 制限なし ('')、500 未満 (rent1)、500-800 (rent2)...
タイプ (スタイル): 制限なし ('')、アパート (スタイル 1)、一般住宅 (スタイル 2)....
対応するタグの href 値は次のようになります:
">制限なし
">第 1 地区
">第 2 地区
…..
">制限なし
">アパート
">一般住宅
これらのラベルは実際には動的に出力する必要があります。 key (リクエストパラメータ) と value (リクエストパラメータ) の値が一致していれば問題ありません:)。
修正歓迎(詳細はこちら:
http://fc-lamp.blog.163.com/blog/static/17456668720128275633639/
)。
-
- /**
- *
- * 検索URL文字列処理
- * @author: fc_lamp
- * @blog: http://fc-lamp.blog.163.com/
- * @param str $key メインパラメータ
- * @param str $value パラメータvalue
- * @param str $query 検索文字列 (この値は通常無視されます)
- * @param str $page_key ページ番号パラメータ (ページング中にページ番号が GET に渡されるため、削除する必要があります)
- * @internal
- * 文字内にキーがあった場合、元の文字列内のキーを削除し、新しい値を代入します。
- * 文字キーの入力値がNULLの場合、KEYを削除します。
- */
- function query_str($key, $value = '', $query = '', $page_key = 'page')
- {
- $query = empty ( $query ) ? $_SERVER ['QUERY_STRING'] : $query;
- if (empty ( $query ))
- {
- $query = "?$key=" . urlencode ( "$value" );
- } else
- {
- parse_str ( $query, $q );
- if (isset ( $q [$page_key] ))
- {
- unset ( $q [$page_key] );
- }
- if (isset ( $q [$key] ))
- {
- unset ( $q [$key] );
- }
- if ($value === NULL)
- {
- $query = '?' . http_build_query ( $q );
- } else
- if (! 空 ( $q ))
- {
- $query = '?' . http_build_query ( $q ) . urlencode ( "$value" );
- } else
- {
- $query = "? $key=" . urlencode ( "$value" );
- }
- }
- }
- return $query;
- }
-
-
-
-
-
-
-
-
-
コードをコピー
|