2016-07-12 5 views
0

Я новичок в создании кода и создал раскрывающийся список с полями моей базы данных. Поэтому, когда я выбираю определенное поле и нажимаю кнопку отправки, он должен отображать все эти значения из моей базы данных. Я запутался в том, как передать значение поля моему файлу контроллера, а затем в файл модели. Можем ли мы передавать значения только как массив для моделирования или просмотра файла?Выпадающее окно 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); 
     } 

} 

Модель файла:

«Мое имя базы данных пользователей и содержит три поля NAME, EMAIL, ID.When я выбрать имя из выпадающего списка все имена в моей базе данных должны будет отображаться»

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

вид файла:

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

ответ

0

Вы не передадите правильное действие в вашей форме. Вы просто используете имя контроллера, которое не будет работать. вам нужно <?php echo form_open('Dropcontroller/data_submitted');?>. если вы отправляете данные в data_submitted. Сообщите мне, если у вас есть путаница.

+0

Он работал Азам. но я не знаю, как передать значение поля выбора в запрос моей модели. Я храню его в массиве с именем data, но когда я включаю это в свой запрос, он отображает ошибку данных. Пожалуйста, заманируйте мой код страницы модели выше и предложите мне решение – 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); 
    } 
Смежные вопросы