2010-12-12 14 views
5

मेरी ड्रॉपडाउन सूची में मेरे पास प्रत्येक विकल्प के लिए दो अलग-अलग मान हैं। मैं दोनों को कैसे प्राप्त कर सकता हूं? मुझे बताएं कि मेरा क्या मतलब है।PHP ड्रॉपडाउन सूची विकल्प विकल्प

<select name="my_ddl"> 
    <option value="<?php $value_Id ?>"><?php $value_text ?></option> 
    <option value="<?php $value_Id ?>"><?php $value_text ?></option> 
</select> 

जब प्रपत्र पोस्ट किया जाता है, मैं दोनों $ value_id और चयनित विकल्प पर $ value_text प्राप्त करने में सक्षम होना चाहता हूँ। मैं यह कैसे कर सकता हूँ?

$ _POST ['my_ddl'] केवल एक मान दोनों ही नहीं मिलता है।

asp.net में मैं इसे my_ddl.Value और my_ddl.Text का संदर्भ देकर कर सकता हूं।

धन्यवाद!

उत्तर

5

कड़ाई से, यह संभव नहीं है।

<select name="my_ddl"> 
    <option value="<?php echo $value_Id ?>|<?php echo $value_text ?>"><?php echo $value_text ?> 
    </option> 
</select> 

और ...

<?php  
    list($id, $text) = explode('|', $_POST['my_ddl']); 
    //... 
?> 
+0

धन्यवाद! यह उत्कृष्ट काम किया। इतना आसान मैं इसे विश्वास नहीं कर सकता। –

0

आप <option> के लिए पाठ को भरने के लिए PHP का उपयोग कर रहे हैं:

आप कर सकता है क्या आपके value विशेषता में एक सीमांकक का उपयोग करें तो आप शायद सर्वर पर मूल्य को देख सकते हैं। शायद आपको डेटाबेस तालिका में टेक्स्ट देखने के लिए $ value_id का उपयोग करने की आवश्यकता है?

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

0

आप POST डेटा से value_text प्राप्त नहीं कर सकते हैं। एक समाधान जावास्क्रिप्ट के माध्यम से विकल्प चुनने के बाद छिपे हुए क्षेत्र को पॉप्युलेट करना है।

3

यह कर का एक और अजीब तरीका है:

<select name="my_ddl"> 
    <option value="<?php echo $value_Id ?>[<?php echo $value_text ?>]"> 
    <?php echo $value_text ?> 
    </option> 
</select> 

फिर जब आप इसे संसाधित आप इस या शायद और भी अधिक सरल कुछ कर सकते हैं:

foreach ($_POST['my_dd1'] as $value_Id => $value_text) { 
    $value_Id = $value_Id; 
    $value_text = $value_text; 
} 

क्योंकि php [] के रूप में अर्थ व्यवहार करता है स्ट्रिंग एक सरणी है और इसलिए आपके पास तुरंत एक सहयोगी सरणी है। मैं इस बात से सहमत हूं कि यदि आप इसे पहले स्थान पर रखते हैं तो आपको इस पर भरोसा करने के बजाय कोड में फिर से इसे देखने में सक्षम होना चाहिए।

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