如何在Codeigniter中搜索数据后检索数据并在文本区域中显示

如何在Codeigniter中搜索数据后检索数据并在文本区域中显示

问题描述:

I am new to Codeigniter. I would like to create a module that after search the id, than it will retrieve data from the database and display the data in the textarea. I have no idea that how to retrieve data from database, and display the data in the textarea after click the 'Search' button. Hope someone can help me. Thank You.

This is the Model:

function search($code){
   $this->db->select('name','telno','address','introducer');
   $this->db->from('customer');
   $this->db->like('code',$code);
   $query = $this->db->get();
   if($query->num_rows() > 0){
    return $query->result();
   }else{
    return $query->result();
   }
}

This is the Controller:

public function searchcus(){ 
    $this->load->model('Ordering_model');
    $pgcode = $this->input->post('search');
    if(isset($code) && !empty($code)){
        $data['customer'] = $this->Ordering_model->search($code);
        $this->load->view('ordering/index',$data);
    }else{
        redirect($this->index());
    }
}

This is the View:

<div class="container">
            <div class="col-md-6">
                <div class="form-group">
                    <div class="col-md-9">
                            <input type="text" class="form-control" name="search" id="search" placeholder="<?php echo "Customer's PG Code";?> " required />
                    </div>
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="submit" name="submit" value="Search" ><span class="glyphicon glyphicon-search"><?php echo "Search"; ?></span></button>
                    </span>
                    </div>
            </div>
            </form><br/>
    </div>
    <table style="width: 2000px;" class="table table-striped">
                 <div class="col-xs-4">
                    <div class="input-group">
                    <span class="input-group-addon">Name</span>
                    <input id="msg" type="text" class="form-control" name="msg" >
                    </div>
                </div>
                <br><br>
                <div class="col-xs-4">
                <div class="input-group">
                    <span class="input-group-addon">Tel</span>
                    <input id="msg" type="text" class="form-control" name="msg" >
                </div>
                </div>
                <br><br>
                <div class="col-xs-4">
                <div class="input-group">
                    <span class="input-group-addon">Introducer</span>
                    <input id="msg" type="text" class="form-control" name="msg" >
                </div>
                </div>
                <br><br>
                <div class="col-xs-4">
                <div class="input-group">
                    <span class="input-group-addon">Address</span>
                    <textarea class="form-control" rows="5" id="address"></textarea>
                </div>
                </div>
                <br>


    </table>

Use the following code. It works...

Controller:

 public function searchcus() {
        $pgcode = $this->input->post('search');
        if (isset($pgcode) && !empty($pgcode)) {
            $data['customerr'] = $this->Ordering_model->search($pgcode);
            $this->load->view('viewpage', $data);
        } else {
            redirect($this->index());
        }
    }

Model:

   function search($pgcode) {
        $this->db->select('*');
        $this->db->from('customer');
        $this->db->like('code',$pgcode);
        return $this->db->get()->result();
    }

View page:

<div class="container">
    <form method="post" action="<?php echo base_url(); ?>index.php/welcome/searchcus">
            <div class="col-md-6">
                <div class="form-group">
                    <div class="col-md-9">
                            <input type="text" class="form-control" name="search" id="search" placeholder="<?php echo "Customer's PG Code";?> " required />
                    </div>
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="submit" name="submit" value="Search" ><span class="glyphicon glyphicon-search"><?php echo "Search"; ?></span></button>
                    </span>
                    </div>
            </div>
            </form><br/>
    </div>
<?php if(empty($customerr)) { } else { foreach($customerr as $row) { ?>
    <table style="width: 2000px;" class="table table-striped">
                 <div class="col-xs-4">
                    <div class="input-group">
                    <span class="input-group-addon">Name</span>
                    <input id="msg" type="text" class="form-control" name="msg" value="<?php echo $row->name ?>" >
                    </div>
                </div>
                <br><br>
                <div class="col-xs-4">
                <div class="input-group">
                    <span class="input-group-addon">Tel</span>
                    <input id="msg" type="text" class="form-control" name="msg" value="<?php echo $row->telno ?>" >
                </div>
                </div>
                <br><br>
                <div class="col-xs-4">
                <div class="input-group">
                    <span class="input-group-addon">Introducer</span>
                    <input id="msg" type="text" class="form-control" name="msg" value="<?php echo $row->introducer ?>" >
                </div>
                </div>
                <br><br>
                <div class="col-xs-4">
                <div class="input-group">
                    <span class="input-group-addon">Address</span>
                    <textarea class="form-control" rows="5" id="address"> <?php echo $row->address ?></textarea>
                </div>
                </div>
                <br>


    </table>
<?php } } ?>

try to Use Model Code for searching :

if ($code && $code != '') { $where = "(TABLE_NAME.COLUMN LIKE '%" . $code . "%')"; }

with the ajax you can achive your goal here is the some changes
Model :

function search($code){
   $this->db->select('name','telno','address','introducer');
   $this->db->from('customer');
   $this->db->like('code',$code);// by default it will run '%$code%' no change here
   $query = $this->db->get();
   if($query->num_rows() > 0){
        return $query->result();
   }else{
        return array();
   }
}

Controller :

public function searchcus(){ 
    $this->load->model('Ordering_model');
    $code = $this->input->post('search');//changes
    if(!empty($code)){//changes
        $data['customer'] = $this->Ordering_model->search($code);
        $this->load->view('ordering/index',$data);
    }else{
        redirect($this->index());
    }
}