わかりました。これに遭遇したのは私が最初ではないと確信しています。解決策を探すのに適切な単語がわからないだけです。次のデータベーステーブルを検討してください(この質問のために簡略化されています)。
データベーステーブルhttp://www.nth-root.nl/public/images/wolf/cat_attr.png
写真でわかるように、製品カテゴリを保持するカテゴリテーブルと、さまざまな属性を保持する属性テーブルがあります。例:色(衣類用)、容量(mp3プレーヤー用)など。
写真の中央にある3番目の表は、属性をカテゴリにリンクしています。
これで、バックエンドに、カテゴリを編集(または追加)するためのフォームを含む[カテゴリの編集]ページがあります。同じページに、現在の製品カテゴリにリンクされている属性を管理するために、ドロップダウンリストのリストを表示したいと思います。
バックエンドhttp://www.nth-root.nl/public/images/wolf-commerce/edit_category.png
jqueryを使用してドロップダウンを追加/削除します。
問題は、フォームの$ _POSTデータを使用して、category_attributeテーブルのデータを操作する方法です。
怠惰な解決策は次のようになります(そして、はい、私は過去にこれを行いました):
1.指定されたカテゴリのcategory_attributeの現在のすべての行を削除します
2.次に、選択したすべての属性をcategory_attributeに挿入します
ただし、これはあまり効率的ではありません。誰かがカテゴリのタイトルのみを変更した場合でも、すべての行を削除して再度追加します。
だから私は正しい挿入、更新、削除を行う方法を探しています:
1。$ _POSTに表示されない行を削除します(ドロップダウンは削除されました)
2。変更された行を更新します(からの別のオプションドロップダウンが選択されています)
3。新しい行を挿入します(新しいドロップダウンが追加されました)
どうすればいいのか、どこで良い例が見つかるのかわかりません。いくつかのajaxを使用するのはおそらく簡単ですが、$ _ POST値をデータベース内の値と比較して、純粋にphpであるソリューションを探しています。
誰かが最良の(そして最も効率的な)解決策を説明する良い記事を知っているなら、私に知らせてください、私は非常に感謝しています。
-編集-
質問を明確にするためにいくつかの写真を含めましたが、評判が低すぎるため、スタックオーバーフローはそれらを含めることを拒否しました。したがって、画像がなくても質問が十分に明確であることを願っています。
-edit2-十分な評判を得たので、画像を追加しました。
前もって感謝します、
ニック