2010-08-12 4 views
1

J'essaie d'obtenir l'élément d'option sélectionnée sous forme élément de sélection à l'aide CodeIgniter ...Codeigniter: obtenir sélectionnez l'option de la forme

j'ai un contrôleur de résultats nommés avec ce code dans ce

//get form data 
if($_SERVER['REQUEST_METHOD'] == "POST"){ 
    $data['searchdata'] = array(
     "ionum" => $this->input->post('ionum'), 
     "thisdb" => $this->input->post('thisdb') 
    ); 
} 

qui charge dans une vue, le 'ionum' est une entrée de texte que je peux récupérer, le 'thisdb' est le select, je n'obtiens aucun résultat pour ça ... comment puis-je tirer cela?

+2

Votre code ici est tronqué mais je suppose que vous n'avez aucun problème à toucher le contrôleur et à rejeter les résultats de la matrice que vous construisez. Cela dit, votre code pour accéder aux vars POST semble correct, donc je pense que le prochain endroit à regarder serait votre balisage de formulaire. Ajoutez votre balisage à ce post si vous ne pouvez pas le comprendre. –

+1

Vous devrez également poster le code HTML pour que nous vous aidions. – treeface

+0

aussi, la beauté de $ this-> input-> post est que vous n'avez pas besoin de vérifier la méthode de requête, vraiment, les variables seront assignées false si les champs sont vides. Je voudrais voir la vue et comment vous l'appelez. –

Répondre

6

Assurez-vous que html ressemble:

<form action="<?= site_url('mycontroller/myfunction');?>" method='post'> 
    <input type='text' name='ionum'/> 
    <select name='thisdb'> 
    <option value='db1'>DB1</option> 
    <option value='db2'>DB2</option> 
    </select> 
</form> 

Ensuite, dans votre contrôleur, vous écririez:

class Mycontroller extends CI_Controller{ 
    function myfunction(){ 
     $p = $this->input->post(); 
     if($p){ 
      //you can now access the ionum and thisdb... try echo 
      echo $p['ionum']; 
      echo $p['thisdb']; 
     } 
    } 
} 

Il est inutile d'exécuter la if($_SERVER['REQUEST_METHOD'] == "POST") conditionnelle. Il suffit de vérifier si existe comme ci-dessus.