2012-11-05 9 views
5

के साथ $ _POST सरणी की तुलना करें ठीक है, मुझे यकीन है कि मैं इसमें भाग लेने वाला पहला व्यक्ति नहीं हूं, मुझे समाधान खोजने के लिए सही शब्द नहीं पता हैं। निम्नलिखित डेटाबेस तालिकाओं (इस प्रश्न के लिए सरलीकृत) पर विचार करें:डेटाबेस

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

आप चित्र में देख सकते हैं, वहाँ एक वर्ग तालिका उत्पाद श्रेणियों और एक विशेषता तालिका कि अलग-अलग विशेषताओं धारण रखती है। उदाहरण के लिए: रंग (कपड़ों के लिए), क्षमता (एमपी 3 प्लेयर के लिए), आदि

तस्वीर के केंद्र में तीसरी तालिका, श्रेणियों में विशेषताओं को जोड़ती है।

अब बैकएंड में मेरे पास एक श्रेणी संपादित करने (या जोड़ने) के रूप में एक 'श्रेणी संपादित करें' पृष्ठ है। उसी पृष्ठ पर मैं ड्रॉपडाउन सूचियों की एक सूची प्रदर्शित करना चाहता हूं ताकि यह प्रबंधित किया जा सके कि कौन से गुण वर्तमान उत्पाद श्रेणी से जुड़े हुए हैं।

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

यह जोड़/ड्रॉपडाउन नष्ट करने के लिए jQuery का उपयोग करता है।

समस्या यह है: मैं फॉर्म के $ _POST डेटा का उपयोग करके श्रेणी_ट्रिब्यूट तालिका में डेटा का उपयोग कैसे करूं?

आलसी समाधान होगा (और हाँ मैं अतीत में इस किया है):
1. दिया श्रेणी
2. फिर सभी चयनित गुण सम्मिलित category_attribute को

के लिए category_attribute में सभी मौजूदा पंक्तियां हटाएं

लेकिन यह बहुत ही कुशल नहीं है, यह सभी पंक्तियों को हटा देता है और फिर भी जोड़ता है भले ही कोई श्रेणी श्रेणी का शीर्षक बदलता हो।

तो मैं सही आवेषण, अद्यतन और विलोपन करने के लिए एक रास्ता तलाश कर रहा हूँ:
1. हटाएँ पंक्तियों (लटकती हटा दिया गया है)
2. अद्यतन $ _POST में दिखाई नहीं देते पंक्तियां जो बदली गई हैं (ड्रॉपडाउन से एक और विकल्प चुना गया है)
3. नई पंक्तियां डालें (एक नया ड्रॉपडाउन जोड़ा गया है)

मुझे यकीन नहीं है कि यह कैसे करें या कहां खोजें अच्छा उदाहरण। कुछ AJAX के साथ करना संभवतः संभव है लेकिन मैं ऐसे समाधान की तलाश में हूं जो डेटाबेस में मानों के साथ $ _POST मानों की तुलना में पूरी तरह से php है।

यदि कोई अच्छा लेख (और सबसे कुशल) समाधान बताता है तो कोई अच्छा लेख जानता है, तो कृपया मुझे बताएं, मैं बहुत आभारी हूं।

-edit-
मैं कुछ मेरे सवाल का स्पष्ट करने के लिए चित्रों को शामिल किया था, लेकिन ढेर अतिप्रवाह उन्हें शामिल करने के लिए क्योंकि मेरी प्रतिष्ठा बहुत कम है से इनकार कर दिया है, इसलिए मुझे आशा है कि मेरे सवाल छवियों के बिना पर्याप्त स्पष्ट है।

-edit2- अब मेरे पास पर्याप्त प्रतिष्ठा है, मैंने छवियों को जोड़ा है।

अग्रिम धन्यवाद,

Nic

+1

कुछ ऐसा vocab जो आप अपने Google fu के लिए अनुपलब्ध हो सकते हैं। http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model – ficuscr

+1

इसके अतिरिक्त, आपकी श्रेणी_ सामग्री तालिका को शामिल/जंक्शन/कई से कई/पिवट तालिका http//en.wikipedia.org/wiki/Junction_table –

+0

आप जावास्क्रिप्ट के माध्यम से नए आइटम डालते हैं? –

उत्तर

2

सम्मिलित और अपडेट:
आप आईडी रिकॉर्ड के साथ एक छिपे हुए इनपुट सम्मिलित कर सकते हैं।
जो लोग नए हैं वे इस आईडी को रीसेट करेंगे, इसलिए आप सम्मिलित करते हैं।
आईडी जिसने आपको भर दिया है उसे अपडेट कर दिया है। यदि आप केवल अद्यतन करना चाहते हैं तो वास्तव में आइटम बदल गए हैं, आप मूल्य "0" के साथ एक छिपी हुई इनपुट "अद्यतन" बना सकते हैं। जावास्क्रिप्ट के माध्यम से आप जांच सकते हैं कि कॉम्बो बदल गया है, ताकि इनपुट "1" के रूप में चिह्नित हो।

बहिष्करण:
इसी तरह आप, बहिष्कार करने के लिए क्या कर सकते हैं एक छिपे हुए रिकॉर्ड है कि उपयोगकर्ता को हटाने के लिए क्लिक करता है हटा दिया जाना चाहिए स्कोरिंग इनपुट का निर्माण।

पता नहीं है कि यह आपके लिए उचित तरीका है, या यदि आप अधिक व्यावहारिक समाधान की अपेक्षा करते हैं।

+0

धन्यवाद! यह निश्चित रूप से मुझे शुरू कर देगा। –