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

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

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

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

HTML

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

Q&A

解決済

2回答

2439閲覧

ペーじネーションの改良

uverworld101nm

総合スコア172

PHP

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

HTML

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

0グッド

0クリップ

投稿2016/08/12 07:38

編集2016/08/12 09:02

このコードで「1 2 3 4 5…10 次へ»」の「...」の部分が、いくらやっても 5ページ目をクリックしても6ページや7ページの番号が表示されません。「 6 7 8 9」の番号が表示されるにはどうすればいいですか?

PHP

1<?php 2$key='私のキー'; 3$count='50'; 4$large_area='〇〇'; 5$start =1+($page-1)*10; 6$budget=$_POST ["budget"] 7$format='xml'; 8$url='http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key='.$key.'&count='.$count.'&large_area='.$large_area.'&start='.$start.'&keyword='.$keyword.'&budget='.$budget.'&format='.$format; 9$xml=simplexml_load_file($url); 10$total_count=$xml->results_available; 11function paging($limit, $page, $disp=5){ 12 global $budget; 13 //$dispはページ番号の表示数 14 $next = $page+1; 15 $prev = $page-1; 16 //ページ番号リンク用 17 $start = ($page-floor($disp/2) > 0) ? ($page-floor($disp/2)) : 1;//始点 18 $end = ($start > 1) ? ($page+floor($disp/2)) : $disp;//終点 19 $start = ($limit < $end)? $start-($end-$limit):$start;//始点再計算 20 21 if($page != 1 ) { 22 print '<a href="?page='.$prev.'&budget='.$budget=$_POST["budget"].'">&laquo; 前へ</a>'; 23 } 24 25 //最初のページへのリンク 26 if($start >= floor($disp/2)){ 27 print '<a href="?page=1&budget='.$budget=$_POST["budget"].'">1</a>'; 28 if($start > floor($disp/2)) print "..."; //ドットの表示 29 } 30 31 32 for($i=$start; $i <= $end ; $i++){//ページリンク表示ループ 33 34 $class = ($page == $i) ? ' class="current"':"";//現在地を表すCSSクラス 35 36 if($i <= $limit && $i > 0 )//1以上最大ページ数以下の場合 37 print '<a href="?page='.$i.'&budget='.$budget=$_POST["budget"].'"'.$class.'>'.$i.'</a>';//ページ番号リンク表示 38 } 39 40 //最後のページへのリンク 41 if($limit > $end){ 42 if($limit-1 > $end ) print "..."; //ドットの表示 43 print '<a href="?page='.$limit.'&budget='.$budget=$_POST["budget"].'">'.$limit.'</a>'; 44 } 45 46 if($page < $limit){ 47 print '<a href="?page='.$next.'&budget='.$budget=$_POST["budget"].'">次へ &raquo;</a>'; 48 } 49 50 /*確認用 51 print "<p>current:".$page."<br>"; 52 print "next:".$next."<br>"; 53 print "prev:".$prev."<br>"; 54 print "limit:".$limit."<br>"; 55 print "start:".$start."<br>"; 56 print "end:".$end."</p>";*/ 57 58} 59 60$limit =ceil($total_count/$count); //最大ページ数 61$page = empty($_GET["page"])? 1:$_GET["page"];//ページ番号 62 63paging($limit, $page);

php

1if(!$xml->shop){ 2 echo '見つかりませんでした'; 3 } else { 4 foreach($xml->shop as $r){ 5echo '<table>' ; 6 echo '<tr>'; 7 echo '<td>'; 8 echo $r->food->name; 9 echo '</td>'; 10 echo '<td>'; 11 echo $r->parking; 12 echo '</td>'; 13 echo '<td>'; 14 echo $r->name; 15 echo '</td>'; 16 echo '<td>'; 17 echo $r->access; 18 echo '</td>'; 19 echo '</tr>'; 20 echo '</table>'; 21 ?> 22

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

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

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

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

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

Lhankor_Mhy

2016/08/12 08:52

「確認用」の出力はどうなっていますか?
uverworld101nm

2016/08/12 08:56

« 前へ12345...110次へ »と表示されるだけです。
Lhankor_Mhy

2016/08/12 08:58

いや、違います。「確認用」と書かれている部分のコードの出力です。
Lhankor_Mhy

2016/08/12 09:00

もしかして、コメントの外し方をご存知ない? /**/を削除して実行してみてください。
uverworld101nm

2016/08/12 09:00

レスポンスフィールドのことですか?
uverworld101nm

2016/08/12 09:03

知りませんでした。 レスポンスフィールドを出しました。
uverworld101nm

2016/08/12 09:05

$pageの値がないため僕のやりたいことができないみたいですが、ホットペーパーはそもそもページを出すコードがないため困っています。(1,2,3みたいに出せません)
Lhankor_Mhy

2016/08/12 09:05

いえ、そうではなくて。そのコメントを外した部分の出力を見たいんですが。
uverworld101nm

2016/08/12 09:08

print "<p>current:".$page."<br>"; print "next:".$next."<br>"; print "prev:".$prev."<br>"; print "limit:".$limit."<br>"; print "start:".$start."<br>"; print "end:".$end."</p>";*/ の部分ですか?
Lhankor_Mhy

2016/08/12 09:09

おっしゃるとおりです。
uverworld101nm

2016/08/12 09:12

出力を出すにはどうすればいいですか?
Lhankor_Mhy

2016/08/12 09:16

先ほども書きましたが、 /**/を削除して実行してみてください。
uverworld101nm

2016/08/12 09:19

画面が白くなりました。 つまりーエラーです。
Lhankor_Mhy

2016/08/12 09:23

一応確認しますが、「確認用」も削除しましたよね?
uverworld101nm

2016/08/12 09:24

すみません、これがページ遷移に関係するのですか?
Lhankor_Mhy

2016/08/12 09:24

あと、余計なことかもしれませんが、デバッグ中はエラー出力した方がいいと思いますよ。
Lhankor_Mhy

2016/08/12 09:29

さあ、分かりませんが…… バグの原因を調べるのに空振りをしない自信はないので。
Lhankor_Mhy

2016/08/12 09:32

まあ、気に入らないならやらなくてもいいですよ。コード見た感じページング部分は動きそうな気がするので、バグだと思ってるのはなんかの勘違いなんじゃないかな、と思ってますし。
退会済みユーザー

退会済みユーザー

2016/08/19 01:51

今更突っ込むのもアレですが、タイトルの「ペーじネーションの改良」って…ページすらカタカナに出来なくなったんでしょうか?
guest

回答2

0

ベストアンサー

  • 表示するページ数
  • 現在のページ
  • 最終ページ

がわかればいくらでも書きようがあるかと

仮に表示するページ数が仮に5で、現在のページが4ページ、最終ページが20なら
「2 3 [4] 5 6 」とすれば良いですし、同様に現在のページが2や19なら
「1 [2] 3 4 5」や「16 17 18 [19] 20」とセンターからずらしていく必要があります
また大きな移動を行う場合は
「<< 11 12 [13] 14 15 >>」なら「<<」にはページid=10「>>」にはページid=16を振ります

あとは組み合わせなのでさほど難しくないと思いますが・・・

投稿2016/08/12 09:05

yambejp

総合スコア114775

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

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

uverworld101nm

2016/08/12 09:09

$pageの値が定まっていないから、ページ遷移ができないのではと考えていました。
uverworld101nm

2016/08/12 09:13

ページidを振り分ける方法を知らないので、詳しく教えてくれないでしょうか?
yambejp

2016/08/12 09:20

もし勘違いしていたら申し訳ないですが ページidなんて1ページ目の次は2ページ目,2ページ目の次は3ページ目で 最終ページまでその繰り返しです。 逆にidを指定してページを呼んだ時に、DBやテキストから必要なデータを 呼び出してくるだけです
uverworld101nm

2016/08/12 09:22

dbを使うことはapiから禁止されているので、dbは使えません。
uverworld101nm

2016/08/12 09:22

僕のコードでページ遷移ができるようになるにはどうすればいいですか?
kaz.Suenaga

2016/08/12 09:29

質問者さんのコードでは動いていないのですから、動くようなコードを書くしかありません。 1. PHPでページ間をまたがってデータ(値:この場合ページ数)を受け渡す方法を理解する。 2. 1. で理解した方法を使って、ページ番号や次へなどに付与するリンクを利用し次のページで表示したいページ数を受け渡す ことでできるようになります。 画面にどういったHTMLを表示するかは、HTMLを先に書いて、それをPHPで動的に出力する方法を理解すれば、できるようになります。
yambejp

2016/08/12 09:30

なるほど、なんとなく見えてきました で、1ページ目にはなにが書かれていて、2ページ目にはなにが書かれていて そのコンテンツをどうやって呼び出すんでしょうか? DBじゃなくても最悪よいですが、テキストファイル?それとも全体のデータを PHPの配列かなにかで最初からもっているイメージ?
uverworld101nm

2016/08/12 09:31

function pagingから持ってきています。
kaz.Suenaga

2016/08/12 09:32

> yambejpさん 他人様の回答に横槍を入れてすみません。 ただ、質問者さんの過去の質問とその内容を一度ご覧になってから、回答や確認事項を書かれたほうが、yambejpさんの労力の無駄遣いにならないかと思います。。。
yambejp

2016/08/12 09:42

kaz.Suenagaさんありがとうございます。 どうもそのようなので手を引こうかと思います。 思いつきで回答して失礼しました。
kaz.Suenaga

2016/08/12 09:48

> yambejpさん なんか水を差したようですみません。 普通の質問へのご回答であれば思いつきで回答で充分役立つのだと思いますのでこれにこりず・・・。
guest

0

こんどは知恵袋ですか?

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11162885441

どこで質問しても、同じかと思いますけどねぇ…。

投稿2016/08/13 04:04

takaw

総合スコア128

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

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

退会済みユーザー

退会済みユーザー

2016/08/18 00:21

今度はマルチポストですか…
takaw

2016/08/18 12:01

本人曰く、「誓って違います。 」だそうですよw
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問