2010-11-23 10 views
10

मैं बस इंटरनेट प्रोग्रामिंग सीखना शुरू कर रहा हूं।एचटीएमएल चेकबॉक्स केवल 'ऑन' मान क्यों प्रेषित करते हैं?

चेकबॉक्स के साथ खेलने के बाद, मुझे मुश्किल तरीका पता चला, यह केवल तब होता है जब चेकबॉक्स चेक किया जाता है कि यह 'ऑन' मान को प्रसारित करता है।

क्यों 'ऑफ' मान भी नहीं भेजते?

+1

jQuery इसे इतनी मूर्खता से संभालता है। '$ ('<इनपुट प्रकार =" चेकबॉक्स "/>')। वैल() 'आपको' '' 'पर देता है। – 2rs2ts

उत्तर

9

मुझे लगता है कि यह संचरण की संक्षिप्तता के लिए होना चाहिए। सर्वर पर प्रत्येक अनुरोध 'तार पर' भेजा जाता है यदि आपके पास उस पर हजारों चेकबॉक्स वाले पृष्ठ हैं, तो आप पाएंगे कि "यह बॉक्स बंद है" सर्वर को बताने के लिए डेटा की मात्रा वास्तव में काफी बड़ी है (देखकर जैसे कि आपको प्रत्येक चेकबॉक्स तत्व का नाम कैसे भेजना होगा - जो जानकारी के मेगाबाइट्स को जोड़ सकता है - जो पूरे उपयोगकर्ता अनुभव & इंटरनेट को धीमा कर देगा)।

जबकि वास्तव में आप जानते हैं कि यह इसे भेजने के पुण्य से बंद है - इसलिए इसे भेजने की कोई आवश्यकता नहीं है।

+6

मैं इस जवाब से असहमत हूं। डेवलपर्स (इम्हो) के लिए लाभ तार पर अतिरिक्त डेटा भेजने की लागत से काफी अधिक होगा। एक बात के लिए, यह प्रसंस्करण पृष्ठ पर आपके एचटीएमएल डिस्प्ले को बहुत जोड़ता है (जो मुझे लगता है कि सबसे बड़ा तर्क है)। दूसरा, मैं कल्पना करूंगा (यह सिर्फ एक अनुमान है) कि अधिकांश पृष्ठ केवल 10 या उससे कम कहने वाले चेकबॉक्स की अधिक उचित संख्या का उपयोग करते हैं, और डेटा की यह मात्रा नगण्य है। –

+1

मैं भी सहमत नहीं हूं। उदाहरण के लिए 'GET' पैरामीटर का उपयोग करते हुए तीन राज्य हैं। '? चेक = ऑन','? चेक = ऑफ 'या '?'। एक चेकबॉक्स या तो स्पष्ट रूप से चालू या बंद हो सकता है या बिल्कुल सेट नहीं हो सकता है। मैं "डिफ़ॉल्ट" चालू होना चाहता हूं, लेकिन यह नहीं पता कि यह बंद है या नहीं, क्योंकि फ़ॉर्म चेकबॉक्स सबमिट किए जाने के कारण सेट है या नहीं। यह एक मूर्ख समस्या है जिसे मेरी राय में इस तरह लागू नहीं किया जाना चाहिए था। –

+0

मैं या तो सहमत नहीं हूं, आपको सुझाव देते समय हजारों चेकबॉक्स वाले पृष्ठ की आवश्यकता कब होगी? – developius

2

डिफ़ॉल्ट स्थिति 'अनचेक' है (या जैसा कि आप इसे बताते हैं), इसलिए उस जानकारी को घोषित करने की कोई आवश्यकता नहीं है।

+1

बस @ डेमियन के जवाब का विज्ञापन करने के लिए, यदि डिफ़ॉल्ट रूप से चेक किया गया तो रिवर्स भी सच हो सकता है। – Blake

2

बुलियन मूल्यों के समान, यह अनुमान लगाया गया है। हालांकि, जांचना आसान है, बस आपकी पसंद की भाषा पर निर्भर करता है। एक प्रदर्शन के रूप प्रयुक्त पीएचपी, आप जांच कर सकता है:

<form action="order.php" method="get"> 

    <p> 
    <label><input type="checkbox" name="toppings" value="olives"/>Olives</label> 
    <label><input type="checkbox" name="toppings" value="mushrooms"/>Mushrooms</label> 
    <label><input type="checkbox" name="toppings" value="onions"/>Onions</label> 
    <label><input type="checkbox" name="toppings" value="eggplant"/>Eggplant</label> 
    etc... 
    </p> 

    <p><input type="submit" value="Submit"/></p> 

</form> 

यूआरएल बाद में शामिल केवल जाँच मूल्यों और लगेगा होगा कुछ:

$myvar_enabled = (isset($_GET['myvar']) && $_GET['myvar'] == 'on'); 
18

यह एक ही तत्व नाम के साथ कई चेक बॉक्स होना संभव नहीं है जैसे:

order.php?toppings=mushrooms&toppings=onions&toppings=eggplant 

यदि "ऑफ" मान भी भेजा गया तो यह अच्छा काम नहीं करेगा।

संबंधित मुद्दे