Come arrivare form_dropdown () visualizza il valore selezionato nel Codeigniter?
-
27-10-2019 - |
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:)
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.