《PHP教程:thinkPHP使用post方式查詢時分頁失效的解決方法》要點:
本文介紹了PHP教程:thinkPHP使用post方式查詢時分頁失效的解決方法,希望對您有用。如果有疑問,可以聯系我們。
相關主題:thinkphp教程
本文實例講述了thinkPHP使用post方式查詢時分頁失效的解決辦法.分享給大家供大家參考,具體如下:PHP教程
昨天晚上一直沒有辦理的php項目中的bug,就在剛才終于搞定,在這里還需要感謝各位大神給的幫助!PHP教程
具體問題描述PHP教程
最近遇到一個非常棘手的問題,也是因為剛入手thinkphp.在做項目的過程中,因為需要非常多的查詢條件,如果以get方式提交表單的話,會因為url長度限制而報錯,所以必須使用post方式提交表單數據,但是在分頁的過程中,遇到了問題,因為thinkphp自帶的分頁是以a標簽的形式,進行下一頁的,這樣查詢條件就沒有傳入后臺,導致點擊下一頁的時候,出現空白.PHP教程
查看了一下thinkphp官方手冊,說了如果是POST方式查詢,如何確保分頁之后能夠保持原先的查詢條件呢,具體說明如下圖所示:PHP教程
PHP教程
但是我對手冊有一處不解,既然是以通過a標簽分頁,這樣$map(即查詢條件參數)中的參數值是怎么傳到后臺的呢?我在網上也找到了了其他的一些辦法,比如用$_REQUEST方式獲得參數,說是包括了post和get方式的傳值,但是thinkphp的分頁是使用a標簽來傳參的這樣的話,參數應該還是無法獲得,嘗試了幾次,結果果然是失敗的.還有其他的辦法,看了一下都不靠譜.于是在昨晚在博問上提問了一下.有一位大神給我靈感,就是用js修改a標簽的href屬性.這樣確實可以,然后我嘗試了一直,終于解決了問題.PHP教程
解決辦法:PHP教程
<html> ... ... <body> <form action="" id="form" method="POST"> .... .... </for> ... ... <!--分頁--> <div class="Item hr" style="float:right;"> <div class="current" id="pageBar">{$page}</div> </div> ... ... <script type="text/javascript"> $(function(){ // 分頁(修改鏈接方法) $('#pageBar a').click(function(){ var tmpHref = $(this).attr('href'); tmpHref = tmpHref.replace(/\/selCon\//,""); $("#form").attr("action", tmpHref); $("#form").submit(); return false; }); } </script> </body> </html>
其中,selCon是form中的參數們,比如name='selCon.a',name='selCon.b'......
依照上面的方法解決了點擊下一頁的時候,查詢參數無法傳遞的問題.但是我又發現了一個問題,也就是說當我們進入第二頁之后,然后再改變查詢條件,這時查詢出來的結果不是從第一個開始,而是從第二頁開始,所以我們這里還需要在查詢的時候在js中把p參數(當前頁碼)設置為1,具體方法如下:PHP教程
<script type="text/javascript"> $(function(){ //查詢 $("#selecting").click(function(){ $("#form").attr("action", "__URL__/listDept/p/1"); $("#form").submit(); }); } </script>
希望本文所述對大家基于thinkPHP的php程序設計有所贊助.PHP教程
《PHP教程:thinkPHP使用post方式查詢時分頁失效的解決方法》是否對您有啟發,歡迎查看更多與《PHP教程:thinkPHP使用post方式查詢時分頁失效的解決方法》相關教程,學精學透。維易PHP學院為您提供精彩教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/8273.html