2012-11-05 27 views
5

Tamam, eminim ki bu işe koşan ilk kişi ben değilim, sadece bir çözüm aramak için doğru kelimeleri bilmiyorum. (Bu soru için basitleştirilmiş) Aşağıdaki veritabanı tabloları düşünün: Resimde görebileceğiniz gibi

database tables http://www.nth-root.nl/public/images/wolf/cat_attr.png

, ürün kategorileri ve farklı özelliklere sahip bir öznitelik tablosunu tutan bir kategori tablosu vardır. Örneğin: Renk (giysi için), Kapasite (mp3 çalarlar için), vb.

Üçüncü tablo, resmin ortasında, öznitelikleri kategorilere bağlar.

Şimdi arka bölümde bir kategoriyi düzenlemek (veya eklemek) için bir form içeren bir 'Düzenle kategorisi' sayfasına sahibim. Aynı sayfada, mevcut ürün kategorisine hangi niteliklerin bağlı olduğunu yönetmek için açılan liste listesini görüntülemek istiyorum.

backend http://www.nth-root.nl/public/images/wolf-commerce/edit_category.png

Bu açılan menü ekleme/silme için jquery kullanıyor.

Sorun şu ki: formun $ _POST verilerini kullanarak, category_attribute tablosundaki verileri nasıl işlerim?

tembel çözüm (ve evet ben geçmişte yaptık) olacaktır:
1.

category_attribute verilen kategorideki Sonra
2. Seçilen tüm özelliklerini eklemek için category_attribute tüm güncel satırları sil

Ama bu çok verimli değil, birileri yalnızca kategorinin başlığını değiştirse bile tüm satırları siler ve yeniden ekler.

Yani ben ekler, güncelleştirmeler ve silme yapmak için bir yol arıyorum:
1.
2. Güncellemesi (açılan kaldırıldı) $ _POST görünmüyor satırları sil (yeni bir açılır menü eklendi)

I veya nerede bulmak için bunu nasıl emin değilim yenidir
3. takın satırları (açılır menüden başka bir seçenek seçilmişse) değiştirilir satırlar iyi örnek. Muhtemelen ajax ile yapmak çok kolay ama tamamen php olan ve $ _POST değerlerini veritabanındaki değerlerle karşılaştıran bir çözüm arıyorum.

En iyi (ve en verimli) çözümü açıklayan iyi bir makale bilen biri varsa lütfen bana bildirin, çok minnettar olurum.

-edit-
Sorumu açıklığa kavuşturmak için bazı resimler dahil, ama yığın taşması ünüm çok düşük olduğundan onları da reddetti, bu yüzden benim sorum resimler olmadan yeterince açık umuyoruz.

-edit2- Artık yeterince itibarım var, görüntüleri ekledim.

Şimdiden teşekkür

Nic

+1

. Ayrıca, http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model – ficuscr

+1

Ayrıca, kategori_attribute tablonuz birleştirme/birleştirme/çoktan çoğa/pivot tablo http:/olarak adlandırılır. /en.wikipedia.org/wiki/Junction_table –

+0

Yeni öğeler javascript ile mi ekliyorsunuz? –

cevap

2

takın ve Güncelleme:
Sen Kimlik kayıtları ile gizli bir girişi ekleyebilir.
Yeni olanlar, bu kimliği sıfırlar, böylece eki siz yaparsınız.
Sizi doldurmuş olan ID'ler bir güncelleme yaptı. Sadece güncellemeyi gerçekleştirmek istiyorsanız, öğeleri gerçekten değiştirdiniz "0" değeri ile "GÜNCELLEŞTİRİLMİŞ" gizli bir giriş oluşturabilirsiniz. Javascript ile combo'nun değişip değişmediğini kontrol edebilirsiniz, böylece giriş "1" olarak işaretlenir.

Dışlama:
Aynı şekilde kullanıcı kaldırmak tıkladığında silinmesi gerektiğini kayıtları gol gizli bir giriş oluşturarak, dışlama için ne yapabilirim.

Sizin için uygun bir yol olup olmadığını veya daha pratik bir çözüm beklediğinizden emin değilseniz. Google fu'unuzda eksik kalmış olabileceğiniz bazı kelimelerden bazıları

+0

Teşekkürler! Bu kesinlikle beni başlatacak. –

İlgili konular