2011-07-20 12 views
8

का उपयोग कर टैग मैं <option> टैग के साथ-साथ इसके मूल्य के अंदर पाठ प्राप्त करना चाहता हूं।<option> से पाठ प्राप्त करें PHP

उदाहरण

<select name="make"> 
<option value="5"> Text </option> 
</select> 

मैं $_POST['make']; का इस्तेमाल किया और मैं मूल्य 5 मिल लेकिन मैं दोनों मूल्य और पाठ प्राप्त करना चाहते हैं।

PHP का उपयोग करके मैं इसे कैसे कर सकता हूं?

उत्तर

3

विकल्प टैग के मूल्य पर टेक्स्ट का मान सेट करें, इसे स्थिर HTML मार्कअप के माध्यम से या यहां तक ​​कि यदि यह सर्वर साइड स्क्रिप्ट द्वारा उत्पन्न किया जा रहा है। आप केवल पोस्ट के माध्यम से मूल्य विशेषता मिल जाएगा

एक अन्य विकल्प तथापि, सर्वर साइड पर, मूल्य मैप करने के लिए है ("5"), एक साहचर्य सरणी के लिए, यानी

<?php 
$valueTextMap = array("5" => "Text"); 

$value = $_POST['make']; //equals 5 
$text = $valueTextMap[$value]; //equals "Text" 
?> 
1

आप की आवश्यकता होगी मूल्य में है कि पाठ शामिल करने के लिए (जैसे के साथ शुरू: <option value="5_Text"> Text </option> और फिर पार्स, या ...

आप पृष्ठ पर जावास्क्रिप्ट इस्तेमाल कर सकते हैं पोस्ट कार्रवाई में एक और parm के रूप में पाठ प्रस्तुत करने के लिए

2

में। केवल पीएच का उपयोग कर लेबल और मूल्य दोनों प्राप्त करने के लिए आदेश पी, आपको मूल्य के हिस्से के रूप में दोनों तर्कों की आवश्यकता है।

उदाहरण के लिए:

<select name="make"> 
    <option value="Text:5"> Text </option> 
</select> 

पीएचपी कोड

<?php 
$parts = $_POST['make']; 
$arr = split(':', $parts); 

print_r($arr); 

आउटपुट:

Array(
    [0] => 'Text', 
    [1] => 5 
) 

यह एक तरीका है यह करने के लिए है।

+1

, मुझे लगता है कि यह सबसे सुंदर है। इस लाइन के लिए –

4

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

यह अंदर HTML:

<select name='make' onchange="setTextField(this)"> 
<option value = '' selected> None </option> 
<option value = '5'> Text 5 </option> 
<option value = '7'> Text 7 </option> 
<option value = '9'> Text 9 </option> 
</select> 
<input id="make_text" type = "hidden" name = "make_text" value = "" /> 
<script type="text/javascript"> 
    function setTextField(ddl) { 
     document.getElementById('make_text').value = ddl.options[ddl.selectedIndex].text; 
    } 
</script> 

यह अंदर PHP:

<?php 
$value = $_POST["make"]; 
$text = $_POST["make_text"]; 
?> 
+0

इस लाइन के लिए धन्यवाद होगा। document.getElementById ('make_text')। value = ddl.options [ddl.selectedIndex] .text; ' – robert

0

मैं हमेशा एक बहुत ही सुरुचिपूर्ण समाधान, पहले से ही प्रस्तुत से काफी समान है, जो एक बहुत की आवश्यकता नहीं है का इस्तेमाल किया है अतिरिक्त कोड का।

एचटीएमएल

<select name="make"> 
    <option value="1:First Option">First Option Text</option> 
    <option value="2:Second Option">Second Option Text</option> 
    <option value="3:Third Option Text">Third Option Text</option> 
</select> 

पीएचपी इस विधि का

$value = split(':', $make)[0]; 
$text = split(':', $make)[1]; 

लाभ
हाँ, वहाँ serialworm के जवाब देने के लिए निश्चित रूप से समानताएं हैं, फिर भी हम हमारे PHP में कोड को कम असंगत रूप से एक सरणी में परिवर्तित करके और तत्व चुनकर ब्लॉक करें तुरंत जरूरी है।

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

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