質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

1015閲覧

デフォルトのページネーションのみ不具合

j-nagnn

総合スコア21

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/08/20 09:35

不明点
ページネーションで、「次のページ」や「ページ番号」をクリックすると画像1のようなエラーページに飛んでしまう。
[画像1]

しかし、 一覧のヘッダの文字列をクリックして、「ページ番号」をクリックするときちんとページネーションの動きができます。
参考サイト_ソートの使い方(sort)を参照

ちなみに、成功時と失敗時のURLを見ると以下のような形でした

<成功> http://localhost:8000/bank/Ichiran/direction:desc/sort:account_number/page:2
<失敗> http://localhost:8000/bank/Ichiran/page:2/sort:Bank.account_number/direction:asc

コントローラ(PHP)での記述が悪いのか、ビュー側(HTML&PHP)の記述が悪いのかが分かりません。

解決したいこと
一覧のヘッダの文字列をクリックしなくてもページネーションを行いたい。
<Controller>

PHP

1class BankController extends AppController{ 2 Public $name = 'Bank';//コントローラーネーム 3 Public $uses = 'Bank'; 4 Public $layout; 5 public $paginate = array( 6 'page' => 1,//初期表示のページ 7 'conditions' => array(//取得条件 8 'delete_flag' => 0 //削除フラグが0のもののみ表示させる 9 ), 10 'fields' => array( //取得するフィールド名 11 'bank_code', 12 'bank_meisyou', 13 'account_number', 14 'torihikinin', 15 'version', 16 ), 17 'sort' => 'bank_code',//基本ソート条件 18 'limit' => 4,//1ページ毎に表示する行数 19 'direction' => 'asc'//並び順 20 ); 21public function Ichiran(){ 22 try 23 { 24 25 $data = $this->paginate('Bank'); /* ページネーションから一覧を取得 */ 26 if(!$data){ 27 throw new Exception('一覧に表示するデータがありません。'); 28 }else{ 29 30 $this->set('data',$data); 31 } 32 33 } catch(Exception $ex) { 34 $this->log($ex,'error'); 35 echo "error:".$ex->getMessage(); 36 } 37 } 38} 39

[View]

HTML

1<body> 2 3 <div class = "bys"> 4 5 6 <table class = "btable01"> 7 <tr> 8 <!-- ヘッダにPaginatorヘルパーから生成したリンクを配置する --> 9 <th> <?php echo $this->Paginator->sort('bank_code', '銀行コード'); //表示は「銀行コード」でbank_codeをソートさせる ?></th> 10 <th> <?php echo $this->Paginator->sort('bank_meisyou', '銀行名称'); ?></th> 11 <th> <?php echo $this->Paginator->sort('account_number', '口座番号'); ?></th> 12 <th> <?php echo $this->Paginator->sort('torihikinin', '取引人'); ?></th> 13 <th> 削除</th> 14 </tr> 15 <?php 16 17 foreach($data as $record){//配列+繰り返し文&$dataを$recordとして使用 18 19 echo '<tr>'; 20 //モデル名、大文字小文字の違いも認識する 21 echo "<td>{$record['Bank']['bank_code']}</td>"; 22 $cd = $record['Bank']['bank_code']; 23 echo "<td>{$record['Bank']['bank_name']}</td>"; 24 echo "<td>{$record['Bank']['account_meisyou']}</td>"; 25 26 echo "<td>{$record['Bank']['recipient']}</td>"; 27 echo "<td>"; 28 echo $this->Form->create('bank', array( 29 'type'=>'post', 30 'url'=>'/Bank/sakujyo', 31 'onsubmit'=>'return confirm("削除します。よろしいですか?");' 32 //confirmy⇒確認ダイアログを表示する 33 )); 34 echo $this->Form->hidden('bcode',array('value'=>$cd)); 35 echo $this->Form->hidden('ver',array('value'=>"{$record['Bank']['version']}")); 36 echo $this->Form->submit('削除',array('class'=>'sakujyo','name'=>'sakujyo')); 37 echo $this->Form->end(); 38 echo "</td>"; 39 echo '</tr>'; 40 } 41 42 ?> 43 44 45 </table>

開発環境:netbeans
フレームワーク:CakePHP2.x
実行環境:GoogleChrome

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問