ページに jQuery を含めることができる場合は、まさにそれを行うための簡単な方法があります.load()
。最終的な JavaScript は次のようになります。
$(document).ready(function() {
$("#searchButton").bind('click', function() {
$("#resultsDiv").load(
'http://mysite.com/sorting.php',
{ // parameters, in object literal format
sortDir: 'asc',
sortCol: 'lastname'
// etc.
}
);
});
});
mysite.com、searchButton、および resultsDiv をサイト/マークアップの実際の情報に置き換えます。次のように、jquery セレクターを使用してページ要素から並べ替えパラメーターを取得することもできます。$("#sortDir").val()
- テキスト ボックス、テキスト領域、または選択ボックスを想定します。フォームがそれらを使用していると仮定すると、チェックボックスとラジオ ボタンを取得する他の方法があります。他の質問に答えるには:
1) あらゆるタイプのソートまたはフィルターは、異なる php によって処理されます。このようなページの作り方はこれでよいでしょうか?または、より簡単でより良い方法がありますか?
少人数でも無理はありません。サーバーで引数を受け入れないことは、悪意のある入力を許可しないようにする 1 つの方法です。テーブル名または選択している列を変更する必要があり、すべてのファイルを変更する必要がある場合、扱いにくくなる傾向があります。また、フィルターと並べ替えの組み合わせを許可する場合は、それらの交差をサポートすることについて話していることを認識する必要があります。3 つのフィルターと 4 つの並べ替えがある場合、それは 12 の組み合わせです。別の並べ替えと別のフィルターを追加する場合は、フィルター用に 4 つの新しいページを追加し、並べ替え用に 5 つの新しいページを追加する必要があり、毎回悪化します。
ほとんどの人は、すべてのデータを同じページに移動させ、そのページだけがユーザー入力の検証、クエリの作成、および結果の返しを担当するというルートをたどります。このパラダイムは、一般的に Don't Repeat Yourself の DRYと呼ばれます。ただし、ユーザー入力を受け入れる場合は、(サーバー側で!ユーザー入力を信頼しないでください!)検証を行い、 SQL インジェクション攻撃などを許可しないように十分に注意する必要があります。
2) そしてもう一つ。異なるタイプのフィルターを選択したときに、いくつかのトランジションを持つことは可能ですか? 私はこのようなものが欲しいです: 流砂
その特定のアニメーションは非常に複雑です。彼らは、各ページに表示されるアイコンと、縮小、爆発、移動などのアイコンをプログラムでカスタマイズすることで違いを実行しています。自分で行う方法について詳しく説明できます...
しかし、あなたは何を知っていますか?jQuery 1.3+ と互換性があり、MIT および GPLv2 の下でライセンスされているプラグインなので、サイトに問題なく組み込むことができます。ドキュメントを確認して、自分で試してみてください。返されるマークアップの種類をソートすることと本質的に互換性がないものはありません。li
彼らの例はソートにタグを使用しており、あなたの例の戻り値は を使用していることに気付きましたdiv
。しかし、それは大きなハングアップではないはずです。ハングアップした場合は、li
代わりに s を返します。それを使用して問題が発生した場合は、別の質問を投稿し、適切にタグを付けて、その点で試したことすべてを投稿する準備をしてください.