thinkphp のクエリとページングに関する質問
コントローラ内の検索方法:
public function search(){ import("@.ORG.Page"); $list = D('Blog'); $keyword = trim($this->_post('keyword','htmlspecialchars')); $sql = "SELECT b.*, a.`content`, u.`username` FROM blog b LEFT JOIN blog_attribute a ON a.`blog_id`=b.`id` LEFT JOIN user u ON u.`id`=b.`user_id` "; if(!empty($keyword)){ $sql .= " WHERE b.`title` LIKE '%{$keyword}%' OR a.`content` LIKE '%{$keyword}%'"; } $count = count($list->query($sql)); $Page = new Page($count,2); $firstRow = $Page->firstRow; $listRows = $Page->listRows; $this->data = $list->searchBlog($sql,$firstRow,$listRows); $xxx['data'] = $this->data; $page = $Page->show(); $xxx['page'] = $page; //$this->data['page'] = $page; //$this->assign("page",$page); //var_dump(urldecode(json_encode($this->data))); $this->show(urldecode(json_encode($xxx))); }
リストページのコード:
<import type="css" file="Css.rightContent" /><import type="js" file="js.jquery_min" /><script type="text/javascript">$(document).ready(function(){ $("button").click(function(){ var keyword = $(this).parent("div").children("input").val(); $.ajax({ url: "{:U('Blog/search')}", type: "POST", data: {"keyword":keyword}, error:function(e){ alert("查询出错!"); }, success:function(data){ $("#cell_tb_list").empty(); if(data != ""){ data = eval('('+data+')'); //alert(data.data.length); var layer = "<table class=\"has_checkbox\">"; layer += "<colgroup>"; layer += "<col class=\"col1\">"; layer += "<col class=\"col2\">"; layer += "<col class=\"col3\">"; layer += "<col class=\"col4\">"; layer += "<col class=\"col5\">"; layer += "</colgroup>"; layer += "<tbody>"; layer += "<tr class=\"hoverout\">"; layer += "<th class=\"td2\">发布人</th>"; layer += "<th class=\"td2\">博客标题</th>"; layer += "<th class=\"td2\">发布时间</th>"; layer += "<th class=\"td2\">更新时间</th>"; layer += "<th class=\"td2\">操作</th>"; layer += "</tr>"; for(var i=0;i<data.data.length;i++){ layer += "<tr id=\"testhere\">"; layer += "<td>"+data.data[i].username+"</td>"; layer += "<td>"+data.data[i].title+"</td>"; layer += "<td>"+data.data[i].create_time+"</td>"; layer += "<td>"+data.data[i].update_time+"</td>"; layer += "<td>修改|删除</td>"; layer += "</tr>"; } layer += "<tr class=\"hoverout\" ><td colspan=\"6\" id=\"td_click\" style=\"text-align:right;\">"+data.page+"</td></tr>"; layer += "</tbody>"; layer += "</table>"; // var layer = "<h1>"+data[0].create_time+"</h1>"; $("#cell_tb_list").append(layer); }else{ alert("no"); } } }); });});</script><div id="stage" class="content"> <div id="main"> <div class="title"> <div class="m_bg">博客列表页</div> </div> <div class="mainContent"> <div class="main_content"> <div class="location"> <div class="location_main item"> <div class="search_main"> <!--<form action="__URL__/search" id="search_form" method="post">--> <input type="text" id="query_input" class="search input_txt" name="query_keyword"> <button class="btn" title="Submit Search" type="submit"></button> <!--</form>--> </div> </div> </div> <div class="cell_tb_list" id="cell_tb_list"></div> </div> </div> </div></div>
私の個人的な考えは、リストページをクリックすると、検索ボックスが表示され、検索情報を入力すると、検索された情報が表示されます。現在のページに表示され、ページネーションが追加されました。ページングの各ページは、現在のページの下に表示されます。
この場合、リストの最初のページは実際には正常ですが、その後のページネーションをクリックすると、そのページが表示されます
私は初心者なので、これについてはあまり知りません。方法を理解するのを手伝っていただければ幸いです。ページネーションが正常になるように変更します。ページング クラスはオリジナルの thinkphp であり、スタイルに若干の変更が加えられています。
ディスカッションへの返信 (解決策)
誰か見てますか?
は、サーバー側のデータを取得するために ajax を使用することです。次のページネーションをクリックすると、返された JSON データを確認できます。または、バックグラウンドで直接デバッグし、いくつかのパラメーターを指定して、サーバー側でデータが正常かどうかを確認することもできます。
は、ajax を使用してサーバー側のデータを取得することです。次のページネーションをクリックすると、返された JSON データを確認できます。または、バックグラウンドで直接デバッグし、いくつかのパラメーターを指定して、サーバー側でデータが正常かどうかを確認することもできます。
私の最後の写真は 2 番目のページをクリックした結果であり、返されたデータは 2 番目のページのデータです
次のページをクリックする前にページクラスを変更する必要があります。そうしないと、Spring Json 形式が出力
2 ページ目に返されたデータは異常ですか? バックエンドでデバッグするのが最善です。
区切り記号と何か関係があるのでしょうか? {} を <{}> に置き換えてみてください
http://dadaboke.com 何度も使用していますが、スタイルを自分で変更することもできます。 。
ajax を介して送信して返すので、これを行う方法はないようです。
$(function(){ $('.page a').click(function(){ $.get($(this).attr('href'),function(data){ $('#index_content').html(data); }) return false; }) })
これは簡単に実装できるはずですよね?問題を解決するには 2 つのテンプレートを作成するだけです。それほど複雑である必要はありません。
こちらの記事をご覧ください http://www.23kaiyuan.com/516.html

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPには4つの主要なエラータイプがあります。1。notice:わずかなものは、未定義の変数へのアクセスなど、プログラムを中断しません。 2。警告:通知よりも深刻で、ファイルを含むなど、プログラムを終了しません。 3。ファタラー:最も深刻なのは、機能を呼び出すなど、プログラムを終了します。 4。ParseError:構文エラーは、エンドタグの追加を忘れるなど、プログラムの実行を防ぎます。

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

Phpoopでは、self ::は現在のクラスを指し、親::は親クラスを指し、静的::は後期静的結合に使用されます。 1.Self ::静的方法と一定の呼び出しに使用されますが、後期静的結合をサポートしていません。 2.Parent ::サブクラスには、親クラスのメソッドを呼び出すために使用され、プライベートメソッドにアクセスできません。 3.Static ::継承と多型に適した後期静的結合をサポートしますが、コードの読みやすさに影響を与える可能性があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。
