HTML से PHP तक चेक नहीं किए जाने पर भी मैं सभी चेकबॉक्स चर कैसे प्राप्त करूं?




checkbox checked (4)

एक शुद्ध PHP कार्यान्वयन संभव प्रतीत नहीं होता है, आप jQuery / AJAX का उपयोग करने का प्रयास कर सकते हैं।

मैंने देखा कि PHP केवल चेक किए गए चेकबॉक्स के मान लौटता प्रतीत होता है। मैं चेकबॉक्स की एक सूची देखना चाहता हूं, न केवल चेक किए गए चेकबॉक्स के मूल्य। अनचेक बक्से के चर का पता लगाने का कोई तरीका है?

मैंने पूछा क्योंकि मैं सेटिंग्स को अपडेट करने में सक्षम होना चाहता हूं। उदाहरण के लिए, मेरे पास कुछ विकल्प हैं जो पहले ही चेक किए गए हैं, लेकिन यदि कोई उपयोगकर्ता किसी विकल्प को अनचेक करने का निर्णय लेता है, तो मुझे अनचेक मान पता होना चाहिए ताकि मैं अक्षम होने के विकल्प को अपडेट कर सकूं।


मान लीजिए कि आपके पास 3 चेकबॉक्स हैं जिन्हें आप देखना चाहते हैं, और update_settings आपके फ़ंक्शंस का नाम है जो चेकबॉक्स नाम को पहले तर्क के रूप में लेते हैं और एक बूल वैल्यू दूसरे के रूप में (सक्रिय या नहीं) लेते हैं।

निम्नलिखित स्निपेट लें:

$checkboxes = array("checkbox1", "checkbox2", "checkbox3");
foreach($checkboxes as $checkbox){
    $checked = isset($_POST[$checkbox]);
    update_settings($checkbox, $checked);
}

अल्थौथ पीटर कोवाक्स समाधान यह काम करने जा रहा है, मुझे नहीं लगता कि यह व्यावहारिक है क्योंकि आप पहले से ही जारी करने का उपयोग कर अपने चर देख सकते हैं।


यह ऐसा कुछ नहीं है जो पूरी तरह से PHP में किया जा सकता है।

ब्राउजर केवल चेकबॉक्स के बारे में जानकारी भेजते हैं यदि वे चेक किए गए हैं, यदि आप अनचेक चेकबॉक्स के बारे में जानकारी भी भेजना चाहते हैं, तो आपको फॉर्म में छिपे हुए फ़ील्ड जोड़ना होगा और उन्हें प्रबंधित करने के लिए जावास्क्रिप्ट का उपयोग करना होगा।


मैं बस इस समस्या में खुद भाग गया। मैंने इसे उसी नाम से डुप्लिकेट hidden फ़ील्ड जोड़कर हल किया। जब ब्राउज़र इस जानकारी को भेजता है, तो दूसरा फ़ील्ड पहले ओवरराइड करता है (इसलिए सुनिश्चित करें कि hidden क्षेत्र पहले आता है)।

<input type="hidden" name="foo" value="">
<input type="checkbox" name="foo" value="bar">

यदि checkbox नहीं किया गया है तो आपको मिलता है:

$_REQUEST[ 'foo' ] == ""

यदि checkbox है तो आपको मिलता है:

$_REQUEST[ 'foo' ] == "bar"




checked