溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

thinkPHP用post方式查詢時(shí)分頁失效怎么辦

發(fā)布時(shí)間:2021-08-18 11:04:55 來源:億速云 閱讀:139 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要講解了“thinkPHP用post方式查詢時(shí)分頁失效怎么辦”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“thinkPHP用post方式查詢時(shí)分頁失效怎么辦”吧!

具體問題描述

最近遇到一個(gè)非常棘手的問題,也是因?yàn)閯側(cè)胧謙hinkphp。在做項(xiàng)目的過程中,因?yàn)樾枰浅6嗟牟樵儣l件,如果以get方式提交表單的話,會(huì)因?yàn)閡rl長度限制而報(bào)錯(cuò),所以必須使用post方式提交表單數(shù)據(jù),但是在分頁的過程中,遇到了問題,因?yàn)閠hinkphp自帶的分頁是以a標(biāo)簽的形式,進(jìn)行下一頁的,這樣查詢條件就沒有傳入后臺(tái),導(dǎo)致點(diǎn)擊下一頁的時(shí)候,出現(xiàn)空白。

查看了一下thinkphp官方手冊,說了如果是POST方式查詢,如何確保分頁之后能夠保持原先的查詢條件呢,具體說明如下圖所示:

thinkPHP用post方式查詢時(shí)分頁失效怎么辦

但是我對手冊有一處不解,既然是以通過a標(biāo)簽分頁,這樣$map(即查詢條件參數(shù))中的參數(shù)值是怎么傳到后臺(tái)的呢?我在網(wǎng)上也找到了了其他的一些方法,比如用$_REQUEST方式獲得參數(shù),說是包括了post和get方式的傳值,但是thinkphp的分頁是使用a標(biāo)簽來傳參的這樣的話,參數(shù)應(yīng)該還是無法獲得,嘗試了幾次,結(jié)果果然是失敗的。還有其他的方法,看了一下都不靠譜。于是在昨晚在博問上提問了一下。有一位大神給我靈感,就是用js修改a標(biāo)簽的href屬性。這樣確實(shí)可以,然后我嘗試了一直,終于解決了問題。

解決方法:

<html>
...
...
<body>
<form action="" id="form" method="POST">
....
....
</for>
...
...
<!--分頁-->
<div class="Item hr" >
   <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中的參數(shù)們,比如name='selCon.a',name='selCon.b'......
按照上面的方法解決了點(diǎn)擊下一頁的時(shí)候,查詢參數(shù)無法傳遞的問題。但是我又發(fā)現(xiàn)了一個(gè)問題,也就是說當(dāng)我們進(jìn)入第二頁之后,然后再改變查詢條件,這時(shí)查詢出來的結(jié)果不是從第一個(gè)開始,而是從第二頁開始,所以我們這里還需要在查詢的時(shí)候在js中把p參數(shù)(當(dāng)前頁碼)設(shè)置為1,具體方法如下:

<script type="text/javascript">
  $(function(){
    //查詢
    $("#selecting").click(function(){
      $("#form").attr("action", "__URL__/listDept/p/1");
      $("#form").submit();
    });
  }
</script>

感謝各位的閱讀,以上就是“thinkPHP用post方式查詢時(shí)分頁失效怎么辦”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對thinkPHP用post方式查詢時(shí)分頁失效怎么辦這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI