Pregunta

Estoy tratando de completar una lista desplegable de la base de datos. En mi archivo de vista tengo el siguiente código

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

Ahora la lista desplegable está llenando bien los datos, pero el problema es que no obtengo el valor: "$ Batch" seleccionado automáticamente cuando la página se carga. Curiosamente, si hago eco de $ por lotes, en otra parte de la página muestra los datos correctos, lo que significa que $ Batch está bien.

Aquí está mi controlador

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);
            }     

Y aquí esta mi modelo

 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);
        } 

¿Podrías ayudarme amablemente a resolver este problema? Quiero tener el valor: "$ Batch" seleccionado automáticamente en la lista desplegable cuando se carga la página.

Gracias de antemano.

Editar ... mi modelo para student_get ($ id)

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

Gracias :)

¿Fue útil?

Solución

Creo que lo que probablemente está sucediendo es que el valor en $ lotes puede estar coincidiendo con lo que está representando en el menú desplegable, pero no la clave real en $ opciones para esa opción en particular, que sería el valor = "" porción del HTML.

por ejemplo...

// 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);

Editar en respuesta al comentario de OP:

El método BatchGet () parece devolver su matriz de opciones $ en el formato adecuado y su método student_get () está devolviendo un row_array. Parece que en la vista está asignando el valor de una de las claves devueltas por el método Student_Get para ser el valor seleccionado almacenado en $ Batch, que luego se pasa como el tercer argumento a Form_dropdown ().

Todo esto parece ser correcto. Siempre y cuando el valor de $ Batch sea de hecho una de las claves de matriz que está en $ opciones, entonces Form_dropdown () establecerá una de las opciones desplegables que se han seleccionado.

Otros consejos

Depurar cosas.

var_dump() $options, var_dump() $batch, mira los dos y mira dónde te equivocaste.

La tercera opción debe ser el valor de la clave, no el valor de la etiqueta.

Anthony Jack probablemente tenga razón.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top