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:自己模拟的 ...
随机推荐
- fir.im Weekly - 如何愉悦地进行持续集成
持续集成是一项"一次配置长期受益"的投入,让开发.测试.生产环境的统一变得更加自动高效. 本期 fir.im Weekly 收录了关于 Android.iOS 持续集成的最新实践分 ...
- SQLServer数据库还原提示 数据库正在使用,无法获得独占访问权
还原数据库的时候提示下图的错误:
- Python字符进度条
Python字符进度条 看看这个神奇的module from tqdm import trange from time import sleep for r in trange(10, 1, -1): ...
- OpenCascade Shape Representation in OpenSceneGraph
OpenCascade Shape Representation in OpenSceneGraph eryar@163.com 摘要Abstract:本文通过程序实例,将OpenCascade中的拓 ...
- .NET面试题解析(07)-多线程编程与线程同步
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 关于线程的知识点其实是很多的,比如多线程编程.线程上下文.异步编程.线程同步构造.GUI的跨线程访问等等, ...
- JUnit4使用
1.导入Junit4jar包: Eclipse中在项目上右键点击Bulid Path,然后再点击Add libraries,选择JUnit 2.初次使用 首先先创建一个java项目如下: Demo.j ...
- SVN简介
Subversion(SVN),是一个自由开源的版本控制系统,可以将数据恢复到早期版本,或者检查数据修改的历史,这些数据可以是源代码,也可以是其他类型的文件.SVN,是一个跨平台的软件,支持大多数常见 ...
- CSS 魔法系列:纯 CSS 绘制图形(心形、六边形等)
<CSS 魔法系列>继续给大家带来 CSS 在网页中以及图形绘制中的使用.这篇文章给大家带来的是纯 CSS 绘制五角星.六角形.五边形.六边形.心形等等. 我们的网页因为 CSS 而呈现千 ...
- 你真的精通 CSS 了?来挑战一下 CSS 选择器测验吧
CSS 选择器赋予 CSS 强大的 HTML 元素匹配功能.作为前端开发人员必须要掌握的一部分,可能基本的大家都知道.但是你真的精通 CSS 了吗?挑战一下 CSS 选择器测验就知道. 您可能感兴趣的 ...
- nodejs 回调地狱解决 promise async
nodejs毁掉地狱是一直被人诟病的,以下总结一下解决毁掉地狱的一些方法.(暂时研究的比较浅) 1.promise promise模式在任何时刻都处于以下三种状态之一:未完成(unfulfilled) ...