चेकबॉक्स आमतौर पर बाइनरी डेटा का प्रतिनिधित्व करते हैं जो डेटाबेस में Yes / No, Y / N या 1/0 मान के रूप में संग्रहीत होते हैं। HTML चेकबॉक्स में सर्वर को मान भेजने के लिए खराब प्रकृति होती है यदि चेकबॉक्स की जाँच हो! इसका मतलब है कि अन्य साइट पर सर्वर स्क्रिप्ट अग्रिम में पता होना चाहिए कि वेब पेज पर सभी संभावित चेकबॉक्स हैं जो सकारात्मक (चेक किए गए) या नकारात्मक (अनियंत्रित) मूल्यों को स्टोर करने में सक्षम हैं। वास्तव में केवल नकारात्मक मूल्य समस्या है (जब उपयोगकर्ता पहले (पूर्व) चेक किए गए मान को अनचेक करता है - सर्वर को यह कैसे पता चल सकता है जब कुछ भी नहीं भेजा जाता है अगर यह पहले से नहीं जानता है कि यह नाम भेजा जाना चाहिए)। यदि आपके पास एक सर्वर साइड स्क्रिप्ट है जो गतिशील रूप से UPDATE स्क्रिप्ट बनाता है तो एक समस्या है क्योंकि आपको नहीं पता है कि चेक के लिए Y मान सेट करने के लिए और अनियंत्रित (प्राप्त नहीं) वाले लोगों के लिए N मान प्राप्त करने के लिए सभी चेकबॉक्स प्राप्त करने चाहिए।
चूंकि मैं अपने डेटाबेस में 'Y' और 'N' मूल्यों को संग्रहीत करता हूं और पृष्ठ पर चेक किए गए और अनचेक किए गए चेकबॉक्स के माध्यम से उनका प्रतिनिधित्व करता हूं, इसलिए मैंने 'Y' और 'N' मूल्यों के साथ प्रत्येक मान (चेकबॉक्स) के लिए छिपे हुए फ़ील्ड को जोड़ा, फिर दृश्य के लिए चेकबॉक्स का उपयोग करें चयन के अनुसार मान का निर्धारण करने के लिए साधारण जावास्क्रिप्ट फंक्शन चेक () का उपयोग करें।
<input type="hidden" id="N1" name="N1" value="Y" />
<input type="checkbox"<?php if($N1==='Y') echo ' checked="checked"'; ?> onclick="check(this);" />
<label for="N1">Checkbox #1</label>
मेरे वेब पेज पर प्रत्येक चेकबॉक्स के लिए एक जावास्क्रिप्ट ऑनक्लिक श्रोता और कॉल फ़ंक्शन चेक () का उपयोग करें:
function check(me)
{
if(me.checked)
{
me.previousSibling.previousSibling.value='Y';
}
else
{
me.previousSibling.previousSibling.value='N';
}
}
इस तरह से 'Y' या 'N' मान हमेशा सर्वर साइड स्क्रिप्ट पर भेजे जाते हैं, यह जानता है कि वे कौन से फ़ील्ड हैं जिन्हें अपडेट किया जाना चाहिए और "y 'में" मान "पर चेकोबॉक्स के रूपांतरण की आवश्यकता नहीं है या चेकबॉक्स प्राप्त नहीं हुआ है। '।
नोट: सफ़ेद स्थान या नई लाइन भी एक सहोदर है इसलिए यहाँ मुझे आवश्यकता है। यदि बीच में कोई जगह नहीं है तो केवल .prebuSibling.value
आपको पहले की तरह स्पष्ट रूप से ऑनक्लिक श्रोता जोड़ने की आवश्यकता नहीं है, आप अपने पेज के सभी चेकबॉक्सों में मूल्य बदलने के लिए फ़ंक्शन के साथ क्लिक श्रोता को गतिशील रूप से जोड़ने के लिए jQuery लाइब्रेरी का उपयोग कर सकते हैं:
$('input[type=checkbox]').click(function()
{
if(this.checked)
{
$(this).prev().val('Y');
}
else
{
$(this).prev().val('N');
}
});