2017-10-18 11 views
0

現在、テーブルレイアウトを開発中です。 テーブルではPHPでページ設定機能とフィルタ機能を使用しています。クエリのGETパラメータのHTML URLエンコーディングを無効にする

すべての値はGETパラメータとして送信されます。

例えば、ページネイターは、& limit = 20 & page = 5を使用します。 フィルタは入力フィールドとしてテーブルの行に作成されます。 私は、各列にはそれ自身の入力フィールドがあることを意味します。

送信ボタンをクリックすると、データはGET経由で自身に渡されるため、次のページビューはデータを正しく照会/フィルタリングします。私は%5%のような検索を表示するようにできてるので= 5

&制限を= 20 &ページ= 5 &郵便番号:私は郵便番号をフィルタリングしたい場合は、URLは以下のようになります例えば

、すべてのポストコード5ここで結果は5に限定されません。値の任意の場所に5を持つすべてのデータが表示されます。

しかし、すべての結果が58で表示されるポストコードをフィルタリングする場合は、%58%を入力します。残念ながらURLエンコードごとに、URLは& postcode =%58%になることはありません。それは&のpostcode = X%になります。

URLに正しい値を取得することがどうにかできますか?

問題はブラウザレベルで発生します。 URLを&のpostcode = X%から&のpostcode =%58%に直接変更してEnterキーを押すと、Chromeは直ちにX%に変換します。明らかに - - シンプルなページネータと統合する

多分それはあったので、私は代わりに、POSTのGET経由でそれをやっているなど、メタタグ、HTTPヘッダー、またはJavaScriptで何とか

ことが可能です。

私の悪い英語を申し訳ありません。どんな助けでも大歓迎です。

ありがとうございます。

+1

私はMySQLを使用しているはずです。パーフェクト、それは今私がそれをやっている方法です。お返事をありがとうございます! – Dusty48

+0

うれしかった!私はその答えを – billrichards

答えて

0

あなたは%%の検索について言及しているので、あなたはMySQLや別のSQLバックエンドを使ってデータを照会していると思います。その場合は、クエリ文字列を常にpostcode = 58 & page = 1の形式で残し、%ワイルドカード%検索または完全一致でなければならないかどうかを示す他のパラメータを追加し、ワイルドカードパラメータがある場合はクエリ実行時のバックエンドの%%。

+0

からの私の質問にコメントとして記載されているソリューションを使用しています。しかし、他の答えはそれを解決する正しい方法を提供するかもしれません。 – Dusty48

1

"%"記号自体( "%25")をエスケープする必要があります。 PHPは自動的にそれを解読するほどスマートでなければなりません。

したがっては、が'%58%'になるように、PHPがデコードする&postcode=%2558%25になります。

+0

に移しましたあなたの返事をありがとう、それは良い提案です。しかし、私はbillrichardsからの私の質問にコメントとして言及された解決策を使用しています。 – Dusty48

1

あなたは値をurlencodeにしてから、それらをパラメータに挿入する必要があります。

しかし、mysqlを使用している場合、私はbillrichardsに同意します。

+0

あなたの返信をありがとう、それは良い提案です。しかし、私はbillrichards – Dusty48

関連する問題