2016-07-12 11 views
0

私はcodeigniterを初めて使用していて、自分のデータベースのフィールドにドロップダウンを作成しました。したがって、特定のフィールドを選択して[送信]ボタンをクリックすると、データベースからそれらの値がすべて表示されます。フィールド値をコントローラファイルに渡してからモデルファイルに渡す方法が混乱しています。値をモデルまたはビューファイルの配列として渡すことはできますか?Codeigniterドロップダウンでデータベースから選択した値が表示されない

コントローラファイル:

class Dropcontroller extends CI_Controller { 

    function __construct() { 
     parent::__construct(); 
    } 

     public function index() 
     { 
      $this->load->helper('form'); 
      $this->load->view('dropview'); 

     } 

     public function data_submitted(){ 
      $this->load->helper('array'); 
      $data = array(
      'name'=>$this->input->post('details') 
      ); 
      $this->load->model('Dropmodel'); 
      $this->Dropmodel->select($data); 
      $this->load->model('Dropmodel'); 
      $result = $this->Dropmodel->select($data); 
      $data['result'] = $result[0]; 
      $this->load->view('dropview',$data); 
     } 

} 

モデルファイル:

「私のデータベース名がUSERSであり、3つのフィールドNAME、EMAILが含まれ、ID.Whenは私のデータベース内のすべての名前がす​​べきドロップダウンから名前を選択

?php echo form_open('Dropcontroller');?>  
<?php echo '<h1>Creating a dropdown and displaying the results from database</h1>';?><br/> 
<?php $options = array(
     'name'   => 'Name', 
     'email'   => 'Email', 
     'id'   => 'Id', 

); 

echo form_dropdown('details',$options);?><br/></br> 
<?php echo form_submit(array('id'=>'submit','value'=>'submit'));?><br> 



<?php echo form_close();?> 
<?php if(isset($result)){ 
    foreach($result as $item){ 
     print_r($item); 
    } 
}?> 
:「

class Dropmodel extends CI_Model{ 
    function __construct(){ 
     parent::__construct(); //call the model constructor 
     } 

    function select($data){ 
     $query = $this->db->query('SELECT $data from users'); 
     if ($query->num_rows()>0) { 
      $data = $query->result(); 
     return $data; 
     } else { 
     return false; 
     } 
    } 

ビューファイルを表示することが

答えて

0

フォームに正しいアクションを渡していません。あなたは動作しないコントローラ名を使用しています。 <?php echo form_open('Dropcontroller/data_submitted');?>が必要です。 data_submittedにデータを送信している場合。 混乱があれば教えてください。フォームで

+0

ようですアザムを加工する必要があります。私はどのように私のモデルページのクエリに選択フィールドの値を渡すか分からない。私はデータと呼ばれる配列に格納していますが、これを私のクエリに含めると、データのエラーが表示されます。上記の私のモデルページコードで略奪し、私に解決策を提案してください – hari

0

変更:

<?php 
     //here in your case it should be like this 
     echo form_open('Dropcontroller/data_submitted'); 
     $options = array('name'=> 'Name', 
         'email' => 'Email', 
         'id'=> 'Id'); 
     echo form_dropdown('details',$options); 
     echo form_submit('submit','submit',array('id'=>'submit')); 
?> 

あなたのコントローラのメソッドは、この

function __construct() { 
     parent::__construct(); 
     $this->load->helper(array('url','html','form')); 
     $this->load->database(); 
     $this->load->model('Dropmodel'); 
    } 

    public function data_submitted() { 
     $data = array(); 
     if ($this->input->post('submit') == 'submit') { 
      $form_data = array('name'=>$this->input->post('details')); 
      // do your stuff 
     } 

     $data['result'] = $this->Dropmodel->select($data); 
     $this->load->view('dropview',$data); 
    } 
関連する問題