2012-01-16 7 views

risposta

11

Un altro modo per scrivere sarebbe:

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

Devi usare '''' come chiave o '0' sarà passato nel valore del modulo. Ad esempio '$ dropDownList [''] = 'Please Select';' A meno che tu non voglia quello ...? –

+0

@Madmartigan, grazie, fatto, ha anche aggiornato la mia risposta per includere il controllo del numero di riga. – Jakub

+0

Non è necessario, poiché 'result()' restituisce sempre un array. È inutile. Restituire false potrebbe non essere una buona idea per una funzione che dovrebbe restituire un array, una matrice vuota potrebbe essere più appropriata. Quindi +1 e -1: / –

7

basta aggiungere alla matrice prima di ritorno.

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 modo migliore e più semplice per farlo – Jakub

+1

Meglio ancora, define '$ dropDownList = array ('' => 'Please Select');' prima nel caso in cui non ci siano risultati DB. Inoltre, la minuscola spinta di non chiamare una funzione. –

+0

+1 - inoltre, basta usare la convalida per mantenere il risultato vuoto fuori dal database e forzare una selezione (se necessario). – swatkins

0

C'è anche la possibilità di cambiare la form_helper.php e di aggiungere qualcosa come:

$form .= '<option value =0 >...</option>'; 

al func form_dropdown . Tuttavia, non viene selezionato come predefinito ma nella seconda voce del modulo.

Ma il problema è che si modificano i file principali che non dovrebbero essere generalmente in giù.

Problemi correlati