如何在 codeigniter 中对视图页面中的数据进行排序
How sort data in view page in codeigniter
我正在查看页面中获取数据。现在我想用来自同一视图页面中文本框的一些数据来搜索它。
我该怎么办?我可以使用 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>
在你的 post 标题中你说你想要 "sort" 数据,但在描述中你说你想要 "search" 它。
我建议不要先 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&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; ?>
那么你的Controller就是这样的:
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 为空,您的模型将需要获取所有医生,或者如果 $search 不为空,则通过 $search 查询医生的姓名。同样,如果 $sort 为空,则您将按默认字段(例如创建日期)排序。
如果您有很多结果,那么您还需要查看 CI 的分页 class 以将结果跨越多个页面。
您可以使用 Ajax 实现所有这些,但如果您有很多结果,您仍然需要调用控制器和模型,类似于上面的方法,来完成繁重的工作。
我正在查看页面中获取数据。现在我想用来自同一视图页面中文本框的一些数据来搜索它。
我该怎么办?我可以使用 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>
在你的 post 标题中你说你想要 "sort" 数据,但在描述中你说你想要 "search" 它。
我建议不要先 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&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; ?>
那么你的Controller就是这样的:
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 为空,您的模型将需要获取所有医生,或者如果 $search 不为空,则通过 $search 查询医生的姓名。同样,如果 $sort 为空,则您将按默认字段(例如创建日期)排序。
如果您有很多结果,那么您还需要查看 CI 的分页 class 以将结果跨越多个页面。
您可以使用 Ajax 实现所有这些,但如果您有很多结果,您仍然需要调用控制器和模型,类似于上面的方法,来完成繁重的工作。