tp5页面输出时,搜索后跳转下一页的处理
tp5页面输出时,搜索功能在跳转下一页时,如果不做任何处理,会返回原有是第二页输出的数据。为了保证跳转下一页时输出的是搜索到的数据,做以下处理。
(要根据自己的搜索字段进行适当修改)
页面js代码,给地址栏加上参数,以便于点击搜索按钮后台通过地址栏得到搜索条件。
$(document).ready(function(){
//点击搜索按钮执行搜索
$("#search").click(function() {
var form = $('#form');
var url = form.attr('action');
var query = $('.key').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
query = query.replace(/^&/g, '');
if (url.indexOf('?') > 0) {
url += '&' + query;
} else {
url += '?' + query;
}
form.attr('action',url);
});
//回车搜索
$(".search-form").keyup(function(e) {
if (e.keyCode === 13) {
$(".search").click();
return false;
}
});
//设定input框的值,保留搜索条件,setValue的方法参照http://www.cnblogs.com/xiaopiyuanzi/p/5920864.html
setValue('shop_id', "{:input('get.shop_id')}");
setValue('key', "{:input('get.key')}");
})
搜索部分页面html代码
<div class="search search-form" style="background: #e0e0e0;margin-bottom: 10px">
<form action="{:url('news')}" id="form" method="post"
<table border="0" style="height: 50px;font-size: 15px;color: black;" cellpadding="5" width="35%">
<tr>
<td>商品类:
<select name="shop_id" class="key">
<option value="all">全部</option>
{volist name='li' id='k'}
<option value="{$k.id}">{$k.name}</option>
{/volist}
</select>
</td>
<td>标题:<input type="text" name="key" class="key" class="inpMain" placeholder="新闻标题或标题包含字"></td>
<td><input type="submit" id="search" class="btn" value="搜索" /></td>
</tr>
</table>
</form>
</div>
控制器主要代码
if (empty(input('get.'))) {
$page = NewsModel::where('isdelete',1)->order('id desc')->paginate(8);
$this->assign('list',$page);
return $this->fetch();
} else {
$shop_id=input('get.shop_id');
$key=input('get.key');
if ($shop_id=='all' && $key != '') {
$page=NewsModel::where(['title'=>['like',"%$key%"],'isdelete'=>['eq',1]])->order('id desc')->paginate(8,false,[
'query' => ['shop_id' => $shop_id,'key' => $key] //url额外参数
]);
} elseif ($shop_id != 'all' && $key != '') {
$page=NewsModel::where(['title'=>['like',"%$key%"],'shop_id'=>['eq',$shop_id],'isdelete'=>['eq',1]])->order('id desc')->paginate(8,false,[
'query' => ['shop_id' => $shop_id,'key' => $key]
]);
} elseif ($shop_id != 'all' && $key == '') {
$page=NewsModel::where(['shop_id'=>['eq',$shop_id],'isdelete'=>['eq',1]])->order('id desc')->paginate(8,false,[
'query' => ['shop_id' => $shop_id,'key' => $key]
]);
} else {
$page=NewsModel::where('isdelete',1)->order('id desc')->paginate(8,false,[
'query' => ['shop_id' => $shop_id,'key' => $key]
]);
}
$this->assign('list',$page);
return $this->fetch();
}
tp5页面输出时,搜索后跳转下一页的处理的更多相关文章
- 两种方法实现js页面隔几秒后跳转,及区别
这里需要用到window的两个对象方法,setInterval()和setTimeout() 一. 区别: 1. setInterval(code,millisec) 周期性(millisec单位 ...
- android 页面停几秒后跳转
<span style="white-space:pre"> </span>//实现等待几秒后跳转,方法一 new Handler().pos ...
- 关于 第三方接口支付的时候 采用post提交的方式,有两种 一种是通过 curl来进行,一种是通过js当页面加载完后跳转
这是第一种.通过javascript页面加载完后,对表单采用 post方式提交给 第三方接口----- echo <<<_END<!DOCTYPE html PUBLIC &q ...
- jqgrid重新加载后跳到指定页
一般要求重新加载jqgrid后是跳到第一页 $("#jqgrid").jqGrid('setGridParam',{ datatype:'json', page:1 }).trig ...
- vim搜索后跳到下(上)一个
搜索高亮后, 跳到下一个:小写n 上一个:大写N
- php页面输出时,js设置input框的选中值
/* 设置表单的值 */ function setValue(name, value) { var first = name.substr(0, 1), input, i = 0, val; if ( ...
- 一百二十一:CMS系统之注册后跳转到上一个页面
实现功能,访问测试页面的时候,跳转到注册页面,注册成功后跳转到测试页面 使用参数:若是从其他地址跳转过来时,头部信息中会携带参数referrer,此参数为从从哪个地址跳转到当前地址的,若是直接从浏览器 ...
- 小程序使用微信地址or小程序跳转设置页
如果你有使用过小程序需要你授权微信地址的情况,那么正常的逻辑应该是这样的: 点击获取地址后,弹窗: 此时我相信选择拒绝的人应该还是比较多的,毕竟这是敏感数据,拒绝后再看页面相关功能是否有使用地址的合适 ...
- 类似智能购票的demo--进入页面后默认焦点在第一个输入框,输入内容、回车、right时焦点自动跳到下一个,当跳到select时,下拉选项自动弹出,并且可以按上下键选择,选择完成后再跳到下一个。
要实现的效果:进入页面后默认焦点在第一个输入框,输入内容.回车.right时焦点自动跳到下一个,当跳到select时,下拉选项自动弹出,并且可以按上下键选择,选择完成后再跳到下一个. PS:自己模拟的 ...
随机推荐
- atitit.TokenService v3 qb1 token服务模块的设计 新特性.docx
atitit.TokenService v3 qb1 token服务模块的设计 新特性.docx 1.1. V3 新特性1 1.2. V2 新特性1 2. Token的归类1 3. Token的用途 ...
- 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析
作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...
- 从双十一战报看传统大家电如何O2O转型?
说到大家电电商,大家都会想起天猫.京东.苏宁易购.国美在线等各大电商平台,他们这一次的双十一又实现了较大规模的增长,而各大电商平台家电辉煌战绩的背后实际上是各大品牌家电的成功. 格力今年双十一当天创下 ...
- 快速入门系列--JMeter压测工具
今天的年会已过,仍然是空手而归,不过俺坚信能让生活稳定永远都是努力.由于隔壁组负责年会的抢红包项目,因而趁此机会把通过工具模拟高并发的知识补了补,通过和身边大师的交流,总算是对压力测试有了个简要的了解 ...
- Design5:Sql server 文件组和文件
1,文件组和文件的作用 Sql Server的数据存储在文件中,文件是实际存储数据的物理实体,文件组是逻辑对象,Sql server通过文件组来管理文件. 一个DataBase有一个或多个FileGr ...
- 使用Depth Texture
使用Depth Textures: 可以将depth信息渲染到一张texture,有些效果的制作会需要scene depth信息,此时depth texture就可以派上用场了. Depth Text ...
- BOM之location对象
定义 location提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能.location是一个很特别的对象,因为它既是window对象的属性,也是document对象的属性.换句话说,wi ...
- C#搭建足球赛事资料库与预测平台(1) 基本介绍
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 去年4月到现在,一年 ...
- android 处理302地址
最近项目中需要用到重定向下载,所以找了很多的方法都不合适.因为下载的链接并非单纯的地址,而是需要多次转发的, 在下载的时候用的是URL来打开数据流.但是多次测试并不能对多次跳转的链接打开请求.对于30 ...
- 在jfinal中使用druid,并配置查看权限
首先导入druid包,然后配置configPlugin @Override public void configPlugin(Plugins me) { /**配置druid数据连接池插件**/ Dr ...