如何在codeigniter中查看页面中的数据排序

时间:2018-02-28 08:47:00

标签: php codeigniter goto

我在视图页面中获取数据。现在我想用同一个视图页面中的文本框中的一些数据进行搜索。

我该怎么办?我可以使用ajax或jQuery吗?

这是我的观看页面

<li class="">Doctors</li>
</ol>
<div class="list col-xs-8">
    <div class="col-md-8 col-md-offset-2">
    <?php echo $this->session->flashdata('msg'); ?>
    </div>
    <ul>
        <input type="text" name="search_data" placeholder="Search ..." class="form-control"  id="search_data" onkeyup="ajaxSearch();"style=" height: 50px; width: 200px !important;">           
        <?php  
                if(isset($doc)):  
                    foreach ($doc as $row): 
            ?>
        <li>
            <div class="imgt"><img src="<?php echo base_url("./resources/images/");  if($row->dr_img) echo $row->dr_img;
         else echo "no-img.jpg"; ?>" height="90px" width="82px">
            </div>
            <div class="text">
                <h3><b>Dr. <?php echo  $row->dr_name;?></b><br></h3>
                <p><?php echo $row->spec_specialise; ?><br><?php echo  $row->district;?><br><?php echo  $row->state;?></p>
            </div>
            <div class="text"></div>
            <div class="link">
                 <a href="<?php echo site_url('User/doctor_profile_view/'.$row->id); ?>"><i class="ace-icon fa fa-eye sym"></i>View</a></div>
        </li>
        <?php endforeach; 
        endif;
        ?>
    </ul>
    <div class="space"></div>
</div>
</div>
<div class="pdt_rightt">
    <center>
    </center>
</div>

1 个答案:

答案 0 :(得分:0)

在帖子的标题中,您说您想要“排序”数据,但在说明中您说要“搜索”它。

我建议在没有Ajax的情况下开始这样做以了解基础知识。

您的视图可能如下所示:

<?php echo form_open( current_url() ); ?>
  <h2>Search</h2>
  <input type="text" name="search" placeholder="Enter search word" />
  <button>Search</button>
<?php echo form_close(); ?>

<?php if (isset($docs)) : ?>
<p>
  <a href="<?php echo current_url(); ?>?sort=dr_name&amp;search=<?php echo html_escape( urlencode( $search ) ); ?>">
    Sort by name
  </a>
</p>
<ul>
  <?php foreach ($docs as $row) : ?>
  <li><?php echo html_escape( $row->dr_name ); ?></li>
  <?php endforeach; ?>
</ul>
<?php endif; ?>

然后您的控制器将是这样的:

public function index() {
  $search = $this->input->get_post('search');
  $sort = $this->input->get('sort');
  $docs = $this->doc_model->get_docs( $search, $sort );

  $data = array(
    'search' => $search,
    'sort'   => $sort,
    'docs'   => $docs
  );
  $this->load->view('docs', $data);
}

如果$ search为null,您的模型将需要获取所有医生,或者如果它不为空,则通过$ search查询医生的名称。同样,如果$ sort为null,那么您可以通过默认字段(例如创建日期)进行排序。

如果您有很多结果,那么您还需要查看CI的分页类,以跨越几页的结果。

你可以使用Ajax实现所有这一切,但是如果你有很多结果,你仍然需要调用你的控制器和模型,类似于上面的,来完成繁重的工作。