2012-10-08 46 views
7

मैं चुनेएचटीएमएल विकल्प का चयन करें मेरी php में

$sel = " 
    <option> one </option> 
    <option> two </option> 
    <option> thre </option> 
    <option> four </option> 
"; 

देना कहते हैं कि मैं एक इनलाइन URL होना = site.php?sel=one

अगर मैं एक चर में उन विकल्पों को बचाया नहीं किया, मैं इसे इस तरह से कर सकते हैं विकल्प में से एक बनाने के लिए चयन किया जाना है जहां मूल्य $_GET[sel]

<option <?php if($_GET[sel] == 'one') echo"selected"; ?> > one </option> 
<option <?php if($_GET[sel] == 'two') echo"selected"; ?> > two </option> 
<option <?php if($_GET[sel] == 'three') echo"selected"; ?> > three </option> 
<option <?php if($_GET[sel] == 'four') echo"selected"; ?> > four </option> 

के बराबर है, लेकिन समस्या यह है, मैं एक चर में उन विकल्पों को बचाने के लिए है क्योंकि मैं विकल्पों में से एक बहुत कुछ है की जरूरत है और मैं कैलोरी की जरूरत है मैं कई बार परिवर्तनीय।

क्या यह विकल्प चुनने का कोई तरीका है जहां value = $_GET[sel]?

+0

कैसे उत्पन्न का चयन करें कि है? क्या यह कड़ी-कोडित है? –

+1

जब आप कहते हैं कि आप उन्हें एक चर में संग्रहीत कर रहे हैं, तो मुझे लगता है कि आप एक सरणी का मतलब है, है ना? – BenM

+0

या तो बेन ने क्या कहा, या मैं मानता हूं कि यदि आप एक चर के माध्यम से शूट करते हैं, तो आपने विकल्प को निर्दिष्ट मूल्य का उपयोग किया था, न कि नाम। मैं इसके लिए एक साधारण कार्य लिखूंगा, और इसे हर बार कॉल करूँगा, इसे किसी और कथन के माध्यम से चलाने दें। आपको कोडिंग या चिपकाने की प्रतिलिपि बचाता है। – Dorvalla

उत्तर

11

देखने के लिए विकल्पों की सरणी का उपयोग करें, यह देखने के लिए कि कौन सा विकल्प वर्तमान में चुना गया है।

$options = array('one', 'two', 'three'); 

$output = ''; 
for($i=0; $i<count($options); $i++) { 
    $output .= '<option ' 
      . ($_GET['sel'] == $options[$i] ? 'selected="selected"' : '') . '>' 
      . $options[$i] 
      . '</option>'; 
} 

Sidenote: मैं एक मूल्य को परिभाषित करेगा प्रत्येक तत्व के लिए आईडी किसी तरह का हो सकता है, किसी और आप समस्या में पड़ सकता है, जब दो विकल्प ही स्ट्रिंग प्रतिनिधित्व किया है।

+0

धन्यवाद @sirko, लेकिन कुछ त्रुटि मिली कोई 'var' नहीं है और यह $ i

+2

को ठीक किया जाना चाहिए। पिछले हफ्तों में बहुत अधिक जावास्क्रिप्ट कोडिंग। – Sirko

0

आप $_GET['sel'] के लिए उद्धरण वंचित हो रहे हैं - फिक्सिंग यह जल्दी ही आपकी समस्या को हल करने में मदद कर सकते हैं :)

6
foreach($array as $value=>$name) 
{ 
    if($value == $_GET['sel']) 
    { 
     echo "<option selected='selected' value='".$value."'>".$name."</option>"; 
    } 
    else 
    { 
     echo "<option value='".$value."'>".$name."</option>"; 
    } 
} 
+0

वह चयनित मान के लिए ** ** ** ** आउटपुट करेगा। क्या आप उस दूसरी गूंज को 'else' में लपेटने का मतलब रखते थे? – TRiG

+0

हां यह मेरी गलती थी ... यह किसी अन्य भाग में होना चाहिए। –

+0

चयनित = 'चयनित' काम करता है – kta

0
foreach ($array as $value => $name) { 
    echo '<option value="' . htmlentities($value) . '"' . (($_GET['sel'] === $value) ? ' selected="selected"') . '>' . htmlentities($name) . '</option>'; 
} 

यह काफी साफ है, और, मुझे लगता है, आत्म व्याख्यात्मक।

2

त्रिगुट ऑपरेटर का उपयोग करके सरल उदाहरण यह है चयनित सेट करने के लिए = चयनित

<?php $plan = array('1' => 'Green','2'=>'Red'); ?> 
<select class="form-control" title="Choose Plan"> 
<?php foreach ($plan as $key => $value) { ?> 
    <option value="<?php echo $key;?>" <?php echo ($key == '2') ? ' selected="selected"' : '';?>><?php echo $value;?></option> 
<?php } ?> 
</select>