2012-02-13 9 views
0

私は、ユーザーがツールバーを手配できるようにするサイトをいくつか見てきました。リンクツールバーの変更をユーザーに許可する最善の方法(注文の変更、追加、削除)

これを行うにはどうすればよいですか?

私はおそらく次の操作を行いたい:。

は、リンクの順序が保存され、ユーザーテーブルに新しい数値DBフィールド「listorder」を作成し

各リンクは、数を表します。このような何かがリンクのための新しい表に次のようになります。 最初のリンク - 1つの 第2のリンク - 2 第3リンク - 3などのように

デフォルト「listorder」になります。ユーザーが配置された123 カスタム:231

html: を231に分割して配列に格納し、db(新しいリンクテーブル)から各リンクの適切な内容を探します。

これは、クエリのためにサイトがかなり遅くなるようです。

誰かがこのようなことを行う良い方法を知っていますか?

クッキーは動作しません。注文は永続的で、ユーザーのアカウントに保存する必要があります。

答えて

1

...

は、テーブル内のシリアライズされたセルにIDを格納します。 aulを使用してul要素のデータを保存します。 JqueryUIを使用してツールバー項目のドラッグアンドドロップを実装します。 phpを使用してシリアル化し、注文をテーブルに戻して保存します。

アップデート:私は十分で区切られたシリアル化された具体的には、簡単なセミコロンを使用することはありません ..

IE: $link_order = '1;3;2;6;10;13';

使用PHP <?php explode(';',$link_order); ?>

あなただけの "としてそれを必要とする場合一時的なものです。 クッキーとjquery onchangeを使用します。上記と同じ方法でPHP/dbを使用しないでください

両方のサンプルコードが必要な場合は、教えてください。

+0

オプション#1:サーバー/クライアント側ではもう少し動作するが、クッキーのセットには依存しないオプション#2:クッキーに依存するあなたのサーバーの処理時間/負荷を取り、それをユーザーの裏に置きます。ドキュメントのフッタにこのコードをスローするようにしてください。 – gorelative

+0

また、memcachedや他の形式のメモリキャッシュを使用することもできます。サーバーのローパーを少し軽くします。クッキーの値とdbの値の間のタイムスタンプチェックをすばやく行います。タイムスタンプが一致しない場合は、クッキーを再保存します。 – gorelative

2

あなたのHTML/CSSで設定されたデフォルトの順序を持​​つ方がはるかに良いでしょう。

カスタマイズのために、javascriptを使用してクライアントのマシン上のクッキーをチェックし、そこに保存されているスタイルシートまたは注文の設定に基づいて注文を動的に再配置します。 IMHO、これは達成するためにデータベースのオーバーヘッドを追加する意味がありません。 PHPは必ずしも仕事のための適切なツールではありません。あなたはクッキーclearageを通じて持続する価値を望んでいた場合

+1

あなたが多数のユーザー構成設定を持っていて、それらを既にデータベースに格納している場合は、それを追加してもう1つ追加するのが理にかなっています。しかし、1回限りの解決策として、 dは一般的に所属する表示ロジックを維持する:HTMLとCSSの – rdlowrey

-1

ユーザのdbに「orderField」フィールドを割り当てる必要があります。それぞれが自分のやり方を変えることができます。ユーザーあたり9000個のフィールドが存在しないようにしたい場合。私はIDの区切りタグ(1-2-6-4-3)を置くことをお勧めします。後で他のフィールドを追加する場合には、後で設定するためにリストされていないものを取る。

+0

ダッシュやスラッシュを使用しないでください。負の整数の可能性がなくなり、問題が発生する可能性があります。カンマやセミコロンを使用することが最善です。 – gorelative

+0

真実、良い点ですが、正の整数だけを使用するため、問題ではありません(負のフィールドid ???) –

関連する問題