互联网+时代,说建站,谈运营与网络营销
东台网站建设
需求场景在不需要刷新页面的情况下获取数据,能带来更好的用户交互体验
第一步、通过ajax获取数据并更新页面内容
functionget_search(page= 1,parm=[]) {
$.post('/search/ajax', {
page:page,
parm:JSON.stringify(parm)
}, function(result) {
html= template('tpl-list', result);
$('#list-box').html(html)
});
}
东台网站建设这里用到了art-template插件来重新渲染数据,如果用原生的话,加载会比较慢这个插件类似于vue
{{# page }} 分页代码 通过加# 来解析html代码
{{ if total==0}}
text-align: center;
min-height: 300px;
margin-top: 150px;
color: #F0679A;">No relevant information found
{{/if}}
{{each list }}
{{ $value.code }}
CAS Number
{{ $value.inventor }}
Chemical formula
{{ $value.chemical_formula }}
Molecular weight
{{ $value.molecular_weight }}
UV
{{ $value.absorption }}
FL
{{ $value.emission_sol }}
Reference
{{ $value.Reference }}
Reporting Application
{{ $value.application1}}
{{ $value.application2}}
{{ $value.application3}}
{{ $value.application4}}
{{ /each }}
{{# page}}
第二步、后台返回分页和其他数据
构建分页
functionbulid_page($total,$page=1,$page_size= '')
{
//$total :总数
//$page :传递过来的当前页的值,第八页$page = 8;
//$page_size :每页显示的数据的数目
//$url :传递的地址,默认为当前页面
//$max_length:分页代码时候,中间的分页数的一半
$page= ($page< 1) ? 1: $page;
$page_size= $page_size? $page_size: 10;
$url= $url? $url:$_SERVER['PHP_SELF'];
//$url=str_replace('.html','',$url);
$max_length=5;
$start= $page? ($page- 1) * $page_size: 0;
$total_page= ceil($total/$page_size);
$page_table= '';
//aways in the pages
$page_table= '
if($total>0){
//显示第一页
if($page>1){
$page_table.='
';
}
if($page== 1)
{
$page_table.= '
';
}
else
{
$page_table.= '
';
}
//循环中间页码
if($total_page< 2)
{
$loop_start= 2;
$loop_end= $total_page-1;
}
else
{
$loop_start= $page- $max_length;
$loop_start= ($loop_start<2) ? 2:$loop_start;
$loop_end= $page+ $max_length;
$loop_end= ($loop_end< $max_length) ? $max_length:$loop_end;
$loop_end= ($loop_end> $total_page) ? $total_page-1:$loop_end;
}
//... link
$link_start= (($loop_start- $max_length) < 2) ? 2:$loop_start- $max_length;
$link_end= (($loop_end+ $max_length) > $total_page) ? $total_page:$loop_end+ $max_length;
if($loop_start> 2)
{
$page_table.= '
';
}
//中间链接
for($i= $loop_start; $i<= $loop_end; $i++)
{
if($page== $i)
{
$page_table.= '
';
}
else
{
if($i<>$total_page){ //i不等于总页数最新修改最新修改最新修改最新修改最新修改最新修改最新修改最新修改最新修改最新修改最新修改最新修改最新修改最新修改最新修改
$page_table.= '
';
}
}
}
if($loop_end< $total_page-1)
{
$page_table.= '
';
}
//末页链接
if($total_page!=1)
{
if($page== $total_page)
{
$page_table.= '
';
}
else
{
$page_table.= '
';
}
}
}
//输出分页代码
if($total_page>$page){
$page_table.= '
';
}else{
$page_table.= '';
}
$page_table.='
';
return$page_table;
}
传递数据给前端
functionajax(){
if( $this->request->isPost() ) {
$model= newProducts();
$parm=$this->request->param();
$post= objtoarr(json_decode($parm['parm']));
//dump( $post);exit;
$data=$model->search($post,$parm['page']);
//生成查询结果和分页
returnjson($data);
}
}