Comment obtenir form_dropdown () afficher la valeur sélectionnée dans Codeigniter?

StackOverflow https://stackoverflow.com/questions/7328681

  •  27-10-2019
  •  | 
  •  

Question

Je suis en train de remplir une liste déroulante de base de données. Dans mon dossier de vue que j'ai le code suivant

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

Maintenant, la liste déroulante est peuplait fin de données, mais le problème est que je ne comprends pas la valeur - « $ lot » sélectionné automatiquement lorsque la page se charge. Fait intéressant si j'echo $ lot, ailleurs dans la page, il montre les données correctes, ce qui signifie $ lot est correct.

Voici mon contrôleur

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

Et voici mon modèle

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

Pourriez-vous aider de bien vouloir me résoudre ce problème. Je veux avoir la forte valeur « $ lot » automatiquement sélectionné dans la liste déroulante lorsque la page se charge.

Merci à l'avance.

EDit ... mon modèle pour student_get ($ id)

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

Merci:)

Était-ce utile?

La solution

Je pense que ce qui se passe probablement est que la valeur de $ lot peut être mise en correspondance ce qui rend dans le menu déroulant, mais pas la clé réelle $ options pour cette option particulière qui serait la valeur = « » partie du html.

par exemple ...

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

Modifier en réponse au commentaire de l'OP:

La méthode batchget () ressemble à elle retourne vos options de tableau $ dans le format approprié et votre méthode student_get () renvoie une row_array. Il semble que dans la vue que vous affectez la valeur de l'une des clés renvoyées par la méthode student_get à la valeur sélectionnée stockée dans $ lot qui est ensuite passé dans le troisième argument à form_dropdown ().

Tout cela semble correct. Tant que la valeur de $ lot est en effet l'une des clés du tableau qui est en $ Options, puis form_dropdown () établira une des options déroulantes comme ayant été sélectionné.

Autres conseils

choses de débogage.

var_dump() $options, var_dump() $batch, regardez les deux et voir où vous êtes allé mal.

La troisième option doit être la valeur de la clé, pas la valeur de l'étiquette.

Anthony Jack est probablement raison.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top