「pager」のリンク先URLについて。 - PHPプロ!Q&A掲示板

2869

  • 0P

「pager」のリンク先URLについて。

質問日時 / 2010年9月20日 11:15    回答数 / 8件

Questioner:  L952_MAX  このエントリーをはてなブックマークに追加 

キーワード / pear    pager    ページング   

はじめまして。よろしくお願い致します。
現在、pearのpagerを使用し、ページング処理を行おうと考えてます。

無事に、ナビゲーションリンクの表示、表示したいコンテンツの表示までは来れたのですが、ナビゲーションリンク先URLのことで詰まってしまいました。
現在、ある固定ページでpagerを使用することを考えているのですが、ナビゲーションリンク先がTOPページになってしまうので、うまくページの移動ができません。

http://abcdefg.jp/ZZZ/」のようなページでページングを利用しているのですが、ナビゲーションリンクで飛ばされるURL先が、「http://abcdefg.jp/?pageID=2」となりtopページになってしまい困っております。



http://www.phpbook.jp/pear/pear_pager/index6.html
上記のページを参考にさせて頂きました。


  1. <?php
  2. require_once("Pager/Pager.php");
  3.  
  4. $totalItems = 11;
  5. $perPage = 3;
  6.  
  7. $options = array(
  8.   "totalItems" => $totalItems,
  9.   "perPage" => $perPage
  10. );
  11.  
  12. $pager =& Pager::factory($options);
  13. $navi = $pager -> getLinks();
  14. print($navi["all"]);
  15.  
  16. $currentPageID = $pager -> getCurrentPageID();
  17. $index = ($currentPageID - 1) * $perPage + 1;
  18.  
  19. print("<p>");
  20. for($i = $index$i < $index + $perPage ; $i++){
  21.   if ($i <= $totalItems){
  22.     print('<img src="./img/no'.$i.'.png">');
  23.     print(" ");
  24.   }
  25. }
  26. print("</p>");
  27. >>CODE
  28. ?>

どうぞよろしくお願い致します。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01magicflute2.htaccessとか別の何かが作用していませんか。 >>COD
 ┗A01-1L952_MAXさっそくのご返信本当にありがとうございます。 PHP
  ┗A01-1-1magicflute2ページングを行いたいURLは、 http://abcdefg.jp/ZZZ
   ┗A01-1-1-1L952_MAX申し訳ありませんでした。 もう一度整理させて頂きま
    ┗A01-1-1-1-1magicflute2以下をexample.phpとして、wordpressのディレクトリ以
     ┗A01-1-1-1-1-1L952_MAXお世話になっております。 とりあえず 、var_dumpの
      ┗A01-1-1-1-1-1-1magicflute2やるなら、 DOCUMENT_ROOT/ZZZ/test.php と、ディレ
       ┗A01-1-1-1-1-1-1-1L952_MAXお世話になっております。 返信おくれて申し訳ありま

回答一覧

並び替え:

A01
answerermagicflute2 [9月20日 22:11] (最終編集:9月20日 22:20)

.htaccessとか別の何かが作用していませんか。
  1. <?php
  2. // Common.phpでは、$_SERVER['PHP_SELF']が使われている様です
  3. // http://example.com/hoge/ なら、index.***となりますか?
  4. echo basename($_SERVER['PHP_SELF']);

この意見に回答する

ツリーへ TOPへ

A01-1
replyerL952_MAX [9月20日 22:43]

さっそくのご返信本当にありがとうございます。
PHPに関してはほぼ無知で、様々なサイト様を参考にさせて頂き試行錯誤してきました。


>.htaccessとか別の何かが作用していませんか。

確認したいのは山々ですが確認のしかたが分かりません。申し訳ありません。


>// Common.phpでは、$_SERVER['PHP_SELF']が使われている様です
>// http://example.com/hoge/ なら、index.***となりますか?

http://example.com/hoge/」の場合は、「http://example.com/index.php?pageID=2」となります。


説明下手で申し訳ありません。
どうぞよろしくお願い致します。

この意見に回答する

ツリーへ TOPへ

A01-1-1
replyermagicflute2 [9月20日 22:57] (最終編集:9月20日 23:20)

ページングを行いたいURLは、
http://abcdefg.jp/ZZZ/index.php で間違いはないのですか?

CMS等入れており、URLを短縮表示といった設定をしていませんか?
環境を提示下さい。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1
replyerL952_MAX [9月20日 23:14]

申し訳ありませんでした。
もう一度整理させて頂きます。

ページングを行いたいページは「http://abcdefg.jp/ZZZ/」です。
「index.php」は付いておりません。
ただ、「pager」を使用してできたナビゲーションリンク先のURLは「http://abcdefg.jp/index.php?pageID=2」と表示され、実際にそのページに飛ぶと「http://abcdefg.jp/?pageID=2」と表示される状態です。
http://abcdefg.jp/ZZZ/index.php?pageID=2」または、「http://abcdefg.jp/ZZZ/?pageID=2」のようなリンクにしたいと思っております。

当方、「CMS等」の知識に乏しく、申し訳ありません。
環境は、さくらレンタルサーバーにwordpressを入れて使用しており、そのwordpressの固定ページで使用したいと思っております。

どうぞよろしくお願い致します。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1
replyermagicflute2 [9月20日 23:28] (最終編集:9月20日 23:30)

以下をexample.phpとして、wordpressのディレクトリ以外に設置し、
実行してもそうなりますか?
また、var_dumpの['url']が正しいか確認してください。

  1. <?php
  2. // Pager/examples/example.phpより
  3. require_once("Pager/Pager.php");
  4. $myData = array();
  5. for ($i=0$i<200$i++) {
  6.     $myData[] = $i;
  7. }
  8.  
  9. $params = array(
  10.     'itemData' => $myData,
  11.     'perPage' => 10,
  12. );
  13. $pager = & Pager::factory($params);
  14. $page_data = $pager->getPageData();
  15. $links = $pager->getLinks();
  16. var_dump($links);
  17. echo $links['all'];

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1
replyerL952_MAX [9月20日 23:37] (最終編集:9月20日 23:53)

お世話になっております。
とりあえず 、var_dumpの件ですが、

 ["url"]=> string(19) "/index.php?pageID=2"

とかえってきました。
よろしくお願いします。


(追記)
wordpress以外のディレクトリで試してみました。
さくらレンタルサーバーの直下に「test.php」という名で設置してみました。
すると、「http://example.sakura.ne.jp/test.php?pageID=2」とかえってきました。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1 満足
replyermagicflute2 [9月21日 00:02] (最終編集:9月21日 01:54)

やるなら、
DOCUMENT_ROOT/ZZZ/test.php
と、ディレクトリを作って確認してください。
そして、リンクをクリックして、正しい動作をするかと、
var_dumpの結果をください。
これで、正常な動作をするようだと、wordpressの設定を疑う事になります。

追加質問:
・『ある固定ページ』とはどのような手順で作成されたものですか。
・[設定]-[パーマリンク設定]はデフォルトのままですか。


※当方、PHP5.3.x wordpress3.0.1日本語版 Pager2.4.8使用
こちらでは、その現象を確認できません。

【追記:09-21 0:45】
『ある固定ページ』の作成手順に付随して、
PHPをページ内で実行できるプラグインを入れていますか?


【追記:09-21 0:56】
DOCUMENT_ROOT/wordpress/ZZZ/index.php
この様にファイルを配置し、パーマリンク設定をデフォルトにすれば、
テーマが適応されていない状態で、一応、動きますが。
この ZZZ ディレクトリと、index.phpファイルは存在するのですか?
ディレクトリまたは、ファイルがない場合、
トップに遷移される設定ではありませんか?

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1-1
replyerL952_MAX [9月21日 21:56]

お世話になっております。
返信おくれて申し訳ありません。


ご指摘の点、パーマリンクを「月と投稿名」で使用していたのですが、それをデフォルトに戻すと無事作動するようになりました。

どうやら、パーマリンクが引っ掛かっていたようです。
本当にお騒がせして申し訳ありませんでした。

また、本当に助かりました。
ありがとうございました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
セッションがいいのか、それともデータベースがいいのか教えて下さい。
 このエントリーをはてなブックマークに追加 
A
>ボタンをクリックしたら選んだ商品情報を持っておきたいと思っています。 そのくらいのことならセッションもしくはCookie(期限短め:場合によってはブラウザ閉じるまで)でいいんじゃないですかね。 #わ...

>>続きを読む

一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)