चयन सूची डिफ़ॉल्ट मान सेट करें [बंद]


16

मेरे पास विकल्पों के साथ सूची है:

$options = array(0 => '0', 500 => '500', 1000 => '1000'); 

मैं इसे 500 पर डिफ़ॉल्ट मान सेट करने का प्रयास कर रहा हूं:

$form['price']['min']['#options'] = $options; 
$form['price']['min']['#default_value'] = 500;

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


1
मैं उसी मुद्दे में भाग गया। समस्या यह थी कि मैं drupal_get_form () का उपयोग करके फ़ॉर्म को प्रस्तुत नहीं कर रहा था, लेकिन उपयोग के मामले के कारण कुछ और तरीका।
user1750

मैं एक ही सवाल पर मुलाकात की !!!! जो मेरी मदद कर सकता है?
ब्लूज़स्की_स्टिल

1
500 एक '500' होना चाहिए, स्ट्रिंग पूर्णांक नहीं।
सादलुलु

जवाबों:


3

मैंने इस समस्या को कभी नहीं देखा है। वह डिफ़ॉल्ट मान काम करना चाहिए। मैं कहूंगा कि कुंजी को एक स्ट्रिंग बनाने की कोशिश करें और #default_valueएक स्ट्रिंग के रूप में सेट करें । #optionsसरणी के माध्यम से पारित किया जा रहा हो सकता है array_merge कहीं न कहीं, इस प्रकार पूर्णांक कुंजी rekeying। यदि चाबियाँ तार हैं तो ऐसा नहीं होना चाहिए। वर्तमान में, आपका सरणी इस तरह दिखता है:

$options = array(
  0 => '0',
  500 => '500',
  1000 => '1000',
);

लेकिन उस सरणी से होकर गुजरना array_mergeउन पूर्णांक कुंजियों को क्रमबद्ध क्रम में रखना हो सकता है:

$options = array(
  0 => '0',
  1 => '500',
  2 => '1000',
);

यदि ऐसा होता है, तो 500कुंजी बस मौजूद नहीं है। ऐसा इसलिए है क्योंकि array_mergeपूर्णांक कुंजियों को संरक्षित करना पसंद नहीं है, लेकिन आप इसे रोकने के लिए तार का उपयोग कर सकते हैं। इसलिए, मुझे लगता है कि आपकी सरणी इस तरह दिखनी चाहिए:

$options = array(
  '0' => '0',
  '500' => '500',
  '1000' => '1000',
);

तब आप अपना सेट कर सकते हैं #default_value:

$form['price']['min']['#default_value'] = '500';

अन्यथा, वहाँ कहीं और है जहाँ अति default_valueहो सकता है?


3

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


2

क्या आपने पूर्णांक के बजाय एक स्ट्रिंग का उपयोग करने की कोशिश की?

$form['price']['min']['#default_value'] = "500"

शायद 'und'कुंजी जोड़ने की कोशिश के लायक भी ।


1

क्या आपने डिफ़ॉल्ट मूल्य को परिभाषित करने के लिए सरणी $ विकल्पों में से कुंजी का उपयोग करने की कोशिश की?
$form['price']['min']['#default_value'] = $options[500];


यदि ऐसा किया जाता है, तो यह तकनीकी रूप से केवल $ विकल्प [500] के मूल्य को पास करेगा, जो कि (स्ट्रिंग) '500' है।
जोर्डोजिस

1
$options = array(0 => '0', 500 => '500', 1000 => '1000'); 
$form['price'] = array(
          '#type' => 'select',
          '#options' => $options,
          '#default_value' => 500,
        );

चयनित सूची में डिफ़ॉल्ट मान सेट करने के लिए हम #default_value पैरामीटर का उपयोग करते हैं। चयनित सूची के default_value विशेषता का मान चयन सूची सरणी की कुंजी होगा।


0

निम्नलिखित कोड 500 के रूप में अपने डिफ़ॉल्ट मान के साथ क्षेत्र दिखाएगा।

$options = array(0 => '0', 500 => '500', 1000 => '1000'); 
$form['price'] = array(
          '#type' => 'select',
          '#options' => $options,
          '#default_value' => 500,
          '#title' => 'Price',
        );  

-1

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


-1

निश्चित, हमें उस $ विकल्प सरणी में पहले डिफ़ॉल्ट मान सेट करना चाहिए, अगर हमने अंतिम जोड़ा, सरणी कुंजी बदल गई [1] => विज्ञान, [२] => नाटक, सही होना चाहिए [१ ९ २] => विज्ञान, [२३१] ] => नाटक :-)


-1

प्रयत्न:

$ फॉर्म ['मूल्य'] ['# default_value'] = ५००;

यह मेरे लिए अच्छा है।


-2

#default_valueके रूप में रूप में यह तर्क होना चाहिए #value

$form['price']['min']['#default_value'] = $options['500'];

-4

महज प्रयोग करें

$form['price']['min']['#default_value'] = 2 

जिसका अर्थ है कि डिफ़ॉल्ट मान 2eme विकल्प लेगा


-5

समाधान: यह पता लगाएं कि form_select_options बिल्कुल नहीं संभालता है #default_value। इसलिए मैंने इस्तेमाल किया #value property:

$form['price']['min']['#value'] = isset($_REQUEST['price']['min']) ? $_REQUEST['price']['min'] : $my_default_value;

2
विकल्पों का चयन डिफ़ॉल्ट मान है। साथ ही #valueपरम को सेट करना उपयोगकर्ता के लिए मूल्य को बदलना असंभव बना देगा।
२०:०५ पर googletorp

1
कोड को देखें, मैंने #value को default_value में सेट किया है, अगर #value में कोई मूल्य नहीं है।
8:30 बजे 8

आप हमेशा $_REQUEST['price']['min']या तो # मूल्य का मान सेट करते हैं $my_default_value। जो भी आप #value में डालते हैं, वह उस क्षेत्र का मूल्य होगा, जो कभी भी उपयोगकर्ता के इनपुट के बिना होता है।
googletorp

यदि उपयोगकर्ता कुछ मूल्य देता है, तो यह मान GET ($ _REQUEST ['मूल्य'] ['मिनट'] के माध्यम से भेजा जाता है। इसलिए यदि उपयोगकर्ता इनपुट मूल्य मैं # इनपुट को उपयोगकर्ता इनपुट पर सेट करता है, अन्यथा #value = $ my_default_value
breethe

यही दिक्कत है। उपयोगकर्ता चयन का उपयोग कर सकते हैं, लेकिन इससे कोई फर्क नहीं पड़ता कि वे क्या चुनते हैं, परिणाम समान होगा।
googletorp
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.