2012-01-16 7 views
7

पर डिफ़ॉल्ट मान जोड़ना मुझे आश्चर्य है कि कोई मेरी मदद कर सकता है या नहीं। मेरे पास एक form_dropdown है जिसे मैं डेटाबेस से विकल्पों के साथ भर रहा हूं। मैं सूची के शीर्ष पर एक डिफ़ॉल्ट "कृपया चुनें" मान जोड़ना चाहता हूं, लेकिन यह नहीं समझ सकता कि डेटाबेस में इसे जोड़ने के बिना इसे कैसे किया जाए।कोडइग्निटर - एक form_dropdown

मेरे कोड इस प्रकार है:

उत्तर

11

एक और तरीका है लिखने के लिए यह होगा:

$form .= '<option value =0 >...</option>'; 
form_dropdown समारोह को

:

function populatedropdown() 
{ 
    $query = $this->db->query('SELECT * FROM '.$this->table_name.' WHERE active=1 ORDER BY brand'); 

    if ($query->num_rows() > 0) { 
     $dropdowns = $query->result(); 

     $dropDownList[''] = 'Please Select'; // default selection item 
     foreach($dropdowns as $dropdown) { 
      $dropDownList[$dropdown->brand] = $dropdown->brand; 
     } 

     return $dropDownList; 
    } else { 
     return false;  // return false if no items for dropdown 
    } 
} 
+2

आपको '' 'का उपयोग करने की आवश्यकता है क्योंकि कुंजी या '0' फॉर्म मान में पारित की जाएगी। यानी '$ ड्रॉप डाउनलिस्ट [''] = 'कृपया चुनें'; 'जब तक आप इसे नहीं चाहते .. .. –

+0

@Madmartigan, धन्यवाद, किया, पंक्ति संख्या जांच शामिल करने के लिए मेरा जवाब भी अपडेट किया। – Jakub

+0

आपको इसकी आवश्यकता नहीं है क्योंकि 'परिणाम()' हमेशा एक सरणी देता है। यह व्यर्थ है। झूठी वापसी शायद एक फ़ंक्शन के लिए एक अच्छा विचार नहीं है जो किसी सरणी को वापस कर दे, एक खाली सरणी अधिक उपयुक्त हो सकती है। तो +1 और -1: / –

7

बस सरणी में जोड़ने से पहले आप इसे वापस।

function populatedropdown() 
{ 
    $query = $this->db->query('SELECT * FROM '.$this->table_name.' WHERE active=1 ORDER BY brand'); 
    $dropdowns = $query->result(); 

    foreach($dropdowns as $dropdown) { 
     $dropDownList[$dropdown->brand] = $dropdown->brand; 
    } 
    $finalDropDown = array_merge(array('' => 'Please Select'), $dropDownList); 

    return $finalDropDown; 
} 
+0

+1 करने के लिए सबसे अच्छा और आसान तरीका +1 – Jakub

+1

अभी तक बेहतर है, '$ dropDownList = array (' '=>' कृपया चुनें ') परिभाषित करें;' यदि कोई डीबी परिणाम नहीं है तो पहले। साथ ही एक समारोह को बुलाए जाने का छोटा सा बढ़ावा। –

+0

+1 - भी, डेटाबेस के खाली परिणाम को खाली रखने के लिए सत्यापन का उपयोग करें और चयन को बल दें (यदि आवश्यक हो)। – swatkins

0

भी form_helper.php बदलने के लिए और की तरह कुछ जोड़ने के लिए संभावना नहीं है । हालांकि, मुझे इसे डिफ़ॉल्ट रूप में नहीं चुना गया है लेकिन फॉर्म में दूसरी प्रविष्टि है।

लेकिन समस्या यह है कि आप कोर फ़ाइलों को बदलते हैं जो आम तौर पर नीचे नहीं होनी चाहिए।