helloWorldTest
- helloWorldTest 回答了问题 翻页 后查询条件丢失的问题!
如图,表单用的get方法,这种方法是没问题的。分页类会自动把get过来的参数,带到下一页
但是如果表单用post,怎把post过来的参数,加到下一页的链接上 - helloWorldTest 回复了 koko 的回答
你生成的get链接上不带参数?
其实传不过去也是必然的,因为分页类的下一页用的是a标签,如果表单是用get方法提交的,会把参数加到a标签的src里面,但是如果表单是用post提交的,a标签里面是没有post过来的参数的。
- helloWorldTest 回复了 koko 的回答
你生成的get链接上不带参数?
form如果是用get方法提交的是没问题的,url是带参数的。但是如果用post方法提交,翻页后get只剩下分页类的参数,在action里面用$_GET['NAME']='test'这样,也不能传到下一页
- helloWorldTest 2017-07-26 已签到连续签到1天,获得了5个金钱
- helloWorldTest 回复了 zqcolor 的回复
遇到相同问题, 找到解决方法如下:
不管怎样,你需要一种能持久化数据的方式。你可以有以下几种选择:
- GET参数
- SESSION
- COOKIE
- hidden field
我的建议是尽量用GET参数,尤其是这种搜索查询页面。
在action中得到post数据后写入$_GET就行了
像这样$form=new SearchForm; if(isset($_POST['SearchForm'])) { $form->attributes=$_POST['SearchForm']; $_GET['keyword'] = $form->keyword; $_GET['cat_id'] = $form->cat_id; } elseif(isset($_GET['keyword'])) { if(isset($_GET['keyword'])) $form->keyword=$_GET['keyword']; if(isset($_GET['cat_id'])) $form->cat_id=$_GET['cat_id']; } else { 既没post也没get数据的话,设定默认查询条件 } if($form->validate()) { ....处理查询 }
我自己的代码, 范围搜索
if (!empty(Yii::$app->request->post())){ $result_from = Yii::$app->request->post('DemoCollectionSearch')['result_from']; $result_to = Yii::$app->request->post('DemoCollectionSearch')['result_to']; }else{ $result_from = Yii::$app->request->get('result_from'); $result_to = Yii::$app->request->get('result_to'); } $searchModel = new DemoCollectionSearch(); $searchModel->result_from = $result_from; $searchModel->result_to = $result_to; $_GET += array( 'result_from' => $dresult_from, 'result_to' => $result_to, ); // define
你好!为什么我在action中把post过来的参数,写进get里,翻页 后get还是空的呢?