Domanda

Sto cercando di compilare un elenco a discesa dal database. Nel mio file vista ho il seguente codice

$batch= $query ['batch']; // I pull this data from a separate model 
echo form_dropdown('shirts', $options, $batch);

I dati Ora l'elenco a discesa è popolando bene, ma il problema è che non capisco il valore - "$ batch" selezionata automaticamente quando la pagina viene caricata. È interessante notare che se io echo $ batch, in altre parti della pagina che mostra i dati corretti, il che significa che $ batch è a posto.

Ecco il mio controller

function update($id){
$this->load->model('mod_studentprofile');
             $data['query']= $this->mod_studentprofile->student_get($id);
             $data['options']= $this->mod_studentprofile->batchget();

             $data['tab'] = "Update Student Information";
                 $data['main_content']='update_studentprofile';
                 $this->load->view('includes/template',$data);
            }     

E qui è il mio modello

 function batchget() {

      $this->db->select('batchname');
       $records=$this->db->get('batch');

            $data=array();

                        foreach ($records->result() as $row)
                {
                    $data[$row->batchname] = $row->batchname;
                }

            return ($data);
        } 

La prego quindi di aiuto gentilmente per risolvere questo problema. Voglio avere il valore- "$ batch" selezionato automaticamente nell'elenco a discesa al caricamento della pagina.

Grazie in anticipo.

Modifica ... il mio modello per student_get ($ id)

  function student_get($id)
    {
        $query=$this->db->get_where('student',array('studentid'=>$id));
        return $query->row_array();
    }      

Grazie:)

È stato utile?

Soluzione

Credo che quello che sta probabilmente accadendo è che il valore di $ della partita può essere corrispondenza ciò che sta rendendo nel menu a discesa, ma non la chiave reale in $ opzioni per quel particolare opzione che sarebbe il valore = "" porzione del codice HTML.

per esempio ...

// this wouldn't select 'foo' as you may be thinking
$options => array('0' => 'foo', '1' => 'bar');
$batch = 'foo';
echo form_dropdown('shirts', $options, $batch);

// this would select foo
$options => array('foo' => 'foo', 'bar' => 'bar');
$batch = 'foo';
echo form_dropdown('shirts', $options, $batch);

Modifica in risposta al commento di OP:

I batchget () metodo sembra che restituisce l'array $ options nel formato corretto e il metodo vostra student_get () restituisce un row_array. Sembra che nella vista si sta assegnando il valore di una delle chiavi restituiti dal metodo student_get di essere il valore selezionato memorizzato in $ lotto che viene quindi passato come il terzo argomento di form_dropdown ().

Tutto questo sembra essere corretto. Fino a quando il valore di $ lotto è infatti una delle chiavi di matrice che è in $ options poi form_dropdown () imposterà una delle opzioni di discesa come aventi stato selezionato.

Altri suggerimenti

Debug roba.

var_dump() $options, var_dump() $batch, sguardo alla due e vedere dove è andato storto.

La terza opzione deve essere il valore della chiave, non il valore dell'etichetta.

Anthony Jack ha probabilmente ragione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top