テンプレート化したphpのmenu.php内で<a href="#">の戻り値が重複してしまう。

このQ&Aのポイント
  • PHPの勉強の為、簡易テンプレートを作成しているのですが、config.php内で指定したURLをmenu.phpで実行させたところ戻り値が重複して困っています。
  • config.phpでは、URLの戻り値として、http://www.yahoo.co.jpを指定しています。
  • menu.php内の<ul>タグ内で、指定したURLを表示させるために<?php echo SITE_URL; ?>と記述していますが、実際の戻り値が重複してしまいます。どうしてなのでしょうか?教えていただけないでしょうか。
回答を見る
  • ベストアンサー

テンプレート化したphpのmenu.php内で<a href="#">の戻り値が重複してしまう。

PHPの勉強の為、簡易テンプレートを作成しているのですが、config.php内で指定したURLをmenu.phpで実行させたところ戻り値が重複して困っています。 ※wordpessなどで見かけるURLテンプレートタグによって、<a href="この部分">のhttp~のURLを書かなくてもいいようにしたいです。 【各ファイル】 ●index.php ●config.php [templatesフォルダ] footer.php header.php ●menu.php style.css [htmlフォルダ] ●index.php トップのindex.php内では、<?php require_once('config.php'); ?>にてconfig.phpを読み込んでいます。 メニューはパーツ分けしたので、<?php include "templates/menu.php"; ?>にて読み込んでいます。 config.phpでは、URLの戻り値として、 <?php define(SITE_URL, "http://www.yahoo.co.jp"); ?> を指定しています。 上記をtempleatesフォルダ内のmenu.phpで実行させました。 <ul> <li><a href="<?php echo SITE_URL; ?>">HOME</a></li> <li><a href="<?php echo SITE_URL; ?>/html/index.php">テスト</a></li> </ul> これで、絶対パスを書かなくてもURLが作れると思ったのですが、実際の戻り値が、 http://www.yahoo.co.jphttp://www.yahoo.co.jp と重複してしまい、ページ移動ができません。 これは、どうしてなのでしょうか? どなたか教えていただけないでしょうか。

  • egtomo
  • お礼率59% (101/170)
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

define(SITE_URL, "http://www.yahoo.co.jp"); 上記の部分を define(SITE_URL, "http://www.sample.co.jp"); と書き変えても、同じように重複しますか? 具体的には、SITE_URLを定数宣言する前に、 <li><a href="http://www.yahoo.co.jp">HOME</a></li> と書いていたところに、定数宣言後 <li><a href="<?php echo SITE_URL; ?>http://www.yahoo.co.jp">HOME</a></li> と、編集ミスをしてしまっている事を一番疑っています。 そのうえで、動作確認しているファイルとエディタで開いて確認しているファイルとは別のファイルという、二重のポカミスを考えています。 上記でやはり重なった場合、 表示されたHTML画面のソースを開くをして、HTML上での確認をお奨めします。 それでもダメな場合、SITE_URLで全ファイルを全文検索して、どこかで値をいじっていないか(再宣言)の確認してみてください。 あとは、ブラウザのキャッシュの削除も試してください。

egtomo
質問者

お礼

ご回答ありがとうございます。 >> あとは、ブラウザのキャッシュの削除も試してください。 キャッシュを削除でいけました。 ソース自体は変更できていたので、キャッシュは関係ないと思ってましたが違うんですね。 ありがとうございました。

関連するQ&A

  • 開閉式メニューのhrefが効かない

    お世話になります。 下記のようなソースでドロップダウンメニューを作って、 動作はしたのですが、肝心のメニューをクリックした時に該当するhtmlファイルに飛びません。 初歩的なことで申し訳ないのですが、サブメニュー内のaタグを動作させるには何か足りないものがあるでしょうか? 教えていただければ助かります。 js <script type="text/javascript"> $(function(){ $("#header-bn").click(function(){ $("#backnumbers").slideToggle(); return false; }); }); </script> HTML <ul> <li>メニュー1</li> <li>メニュー2</li> <li id="header-bn"><a href="september.html">メニュー3</a> <ul id="backnumbers"> <li><a href="8.html">8</a></li> <li><a href="7.html">7</a></li> </ul> </li> </ul> おそらくはhead内に記述したreturn false;の記述で aタグのhref要素が無効にされてしまうと思うのですが、 jsには詳しくなく、単純に削ってしまうと開閉メニューが 機能しなくなるので、これをどう書き換えたらリンクが機能する 開閉式メニューが作れるかお知恵を頂ければ助かります。 よろしくお願い致します。

  • クラス属性を自動で付加したい

    現在表示しているurlを取得しサイトのメニューのaタグにclass="current"を自動で付加させたいと思い調べたところ以下の スクリプトが参考になりそうで試しているのですが全く反応がない 状態です^^;jquery.jsは入れてあります。 $(document).ready( function() { $("#globalNavi a").each( function() { var url = document.URL.split("#"); if ( this == url[0] || this + "index.php" == url[0]) { $(this).parent().addClass("current"); } }); }); htmlは <div id="globalNavi"> <ul> <li><a href="http://hoge.jp/">トップページ</a></li> <li><a href="http://hoge.jp/menu1/">メニュー1</a></li> <li><a href="http://hoge.jp/menu2/"">メニュー2</a></li> </ul> </div> となっております。 希望として参照するurlは完全一致ではなく ・http://hoge.jp/ ・http://hoge.jp/index.php であっても同様に扱い他のページはフォルダごととして ・http://hoge.jp/menu1/ ・http://hoge.jp/menu1/index.php ・http://hoge.jp/menu1/hoge1.php ・http://hoge.jp/menu1/hoge2.php は全て同様としmenu1にクラスを付けたいですのですがどうやれば 動くようになるのでしょうか?

  • phpの文字列表示

    phpで質問です。 ランダムな数字、1~100の間で70以上が出れば表示を変える というプログラムをしたのですが、 70以上が出るとなぜか表示が崩れます。 正常に表示する方法を教えてください。 コード $rand = mt_rand(1,100); echo $rand; if($rand<70) { echo '<ul> <a href="#"><li>A</li></a> <a href="#"><li>B</li></a> <a href="#"><li>C</li></a> <a href="index.php"><li>D</li></a> </ul>'; } else { echo '<ul><a href="example_sub4.php" target="_brank"><li>close</li></a> <a href="#"><li>E</li></a> <a href="#><li>F</li></a> <a href="index.php"><li>G</li></a>'; } ?>

    • ベストアンサー
    • PHP
  • <a href>が機能しない。

    以下のようなhtmlの中で、headerAreaとcontentsArea内に貼ったリンク<a href>が 全く機能しません。でも、footerAreaに貼ったリンクは機能します。 何が悪いのか分からなくて手詰まりになっています。 ご教授下さい。 <!-- body{ margin: 0; padding: 120px 0 10px 0; } * html body{ overflow: hidden; } div#headerArea { position: fixed !important; position: absolute; top: 0; left: 0; width: 100%; height: 120px; background-image:url(images/bg.jpg); } div#footerArea { position: fixed !important; position: absolute; font-size: 11px; font-family:'Lucida Grande','Hiragino Kaku Gothic ProN', Meiryo, sans-serif; text-align:right; bottom: 0; right: 0; width: 100%; height: 18px; background-color:black; color: #ddd; } div#contentsArea{ height: 100%; overflow: auto; } * html div#contentsArea{ height: 100%; overflow: auto; } .bg_img img{ width:100%; position:fixed; top:0px; left:0px; z-index:-1; } h1{ text-align:right; position:absolute; right:10px; top:0px; } h1 span{ display:block; font-size:15px; font-weight:bold; } --> </style> </head> <body> <div id="headerArea"> <h1><a href="index.html"><img src="images/title.png" alt="タイトル"></a></h1> <div class="oe_wrapper"> <div id="oe_overlay" class="oe_overlay"></div> <ul id="oe_menu" class="oe_menu"> <li><a href="">aaaaa<BR><BR><small>School Information</small></a> <div> <ul class="oe_full"> <li class="oe_heading">bbbb</li> <li><a href="#">cccc</a></li> <li><a href="#">dddd</a></li> <li><a href="#">eeee</a></li> <li><a href="#">hhhh</a></li> <li><a href="#">dddd</a></li> </ul> </div> </li> </ul> </div> </div> <div id="contentsArea"> 杉並区<BR> 杉並区<BR> 杉並区<BR> 新宿区<BR> <a href="http://www.educ.city.ibaraki.osaka.jp/e-higashi">豊島区</a><BR> 杉並区<BR> 杉並区<BR> </div> <div id="footerArea"> Copyright&copy;2014 <a href="index.html">aaa株式会社</a> all rights reserved. </div> <!-- The JavaScript --> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script> <script type="text/javascript"> $(function() { var $oe_menu = $('#oe_menu'); var $oe_menu_items = $oe_menu.children('li'); var $oe_overlay = $('#oe_overlay'); $oe_menu_items.bind('mouseenter',function(){ var $this = $(this); $this.addClass('slided selected'); $this.children('div').css('z-index','9999').stop(true,true).slideDown(200,function(){ $oe_menu_items.not('.slided').children('div').hide(); $this.removeClass('slided'); }); }).bind('mouseleave',function(){ var $this = $(this); $this.removeClass('selected').children('div').css('z-index','1'); }); $oe_menu.bind('mouseenter',function(){ var $this = $(this); $oe_overlay.

    • ベストアンサー
    • CSS
  • a href= の使い方について

    本を見ながらプログラムを進めています。 本の通りに行くと、 <p><a href="join/">トップへ</a></p> 上記でindex.phpにアクセスできるはずなんですが、クリックするとObject not found!になります。 index.phpと現在のページはjoinというフォルダに入っています。 これはなぜなのでしょうか?? a href の使い方についてもいまいちわかっていないので、そちらについても説明いただけるとありがたいです。OTL

    • ベストアンサー
    • HTML
  • jQueryにて現在表示しているURLにあわせてCSSを追加する方法を

    jQueryにて現在表示しているURLにあわせてCSSを追加する方法を教えてください。 現在、HTMLを <ul id="#menu"> <li id="#menu_home"><a href="/index.html">HOME</a></li> <li id="#menu_1"><a href="menu_1/foo.html">MENU_1</a></li> <li id="#menu_2"><a href="menu_2/bar.html">MENU_2</a></li> <li id="#menu_3"><a href="menu_3/com.html">MENU_3</a></li> </ul> のように組んでいます。 ローカルホスト上で開発テストしているので、URLは「http://localhost/~」となります。 現在表示しているURLにあわせて、たとえば、HOMEを表示している際には、 <li id="#menu_home"><a href="/index.html" class="active">HOME</a></li> のようにCSSクラスをjQueryにて実現する方法を探しています。 JavaScriptで実現する方法はあるようなのですが、jQueryで実現できないかと試行錯誤しているものの、うまく行きません。 できる限りシンプルにしたいためjQueryやAjaxのプラグインは避けたいです。 どなたかお知恵を拝借できないでしょうか? 何卒よろしくお願いします。

  • アコーディオンパネルで複数のリンクを展開する方法

    こんばんわ。Jquery超初心者です。 Jqueryでアコーディオンパネルを実装しようとしているのですが、Jqueryの指定に問題があるようで、 開きません。以下コードです。 (HTML) <ul class="slide"> <li><a href="">窓口業務</a> <ul> <li><a href="">menu 1-1</a></li> <li><a href="">menu 1-2</a></li> <li><a href="">menu 1-3</a></li> </ul> </li> <li><a href="">異動業務</a> <ul> <li><a href="">menu 2-1</a></li> <li><a href="">menu 2-2</a></li> <li><a href="">menu 2-3</a></li> </ul> </li> <li><a href="">検針業務</a> <ul> <li><a href="">menu 3-1</a></li> <li><a href="">menu 3-2</a></li> <li><a href="">menu 3-3</a></li> </ul> </li> <li><a href="">調定業務</a> <ul> <li><a href="">menu 4-1</a></li> <li><a href="">menu 4-2</a></li> <li><a href="">menu 4-3</a></li> </ul> </li> </ul> (JQuery) $(function () { $("ul.slide li ul").hide(); $("ul.slide li").click(function () { $("ul.slide li").each(function () { if ($("ul.slide li").css("display")=="none"){ $("ul.slide li ul"). slideDown(); } else { $("ul.slide li ul").slideUp(); } }); }); }); eachの使い方が間違っているのか、はたまた何か足りない記述があるのか、途方に暮れています。 何かお気づきの方、ご指摘の程宜しくお願い致します。

  • IE7でのz-index対応について

    以下のようにコーディングすると、IE7でドロップダウンリストが後ろ側に隠れるのですが、対応方法はありますか?div#gnavi ul li ul.sublist のz-indexを9999とかにしても効果なくて。。。 <div id="gnavi"> <ul> <li><a href="#">MENU01</a></li> <li><a href="#">MENU02</a> <ul class="sublist"> <li><a href="#">MENU02-01</a></li> <li><a href="#">MENU02-02</a></li> <li><a href="#">MENU02-03</a></li> <li><a href="#">MENU02-04</a></li> <li><a href="#">MENU02-05</a></li> </ul><!-- /.sublist --> </li> <li><a href="#">MENU03</a></li> <li><a href="#">MENU04</a></li> </ul> </div><!-- /#gnavi --> <div id="adArea"> <ul> <li><a href="#">広告スペース</a></li> <li><a href="#">広告スペース</a></li> <li><a href="#">広告スペース</a></li> <li><a href="#">広告スペース</a></li> </ul> </div> CSS側では、以下のようにしています。 div#gnavi ul li { float:left; position:relative; } div#gnavi ul li ul.sublist { position:absolute; top:0px; left:0px; display:none; } div#gnavi ul li ul.sublist li { float:none; } div#adArea { clear:both; } div#adArea ul li { float:left; }

    • ベストアンサー
    • HTML
  • アコーディオンパネルの作成

    <ul class="level1"> <li>menufirst <ul class="level2"> <li><a href="">menu 1-1</a></li> <li><a href="">menu 1-2</a></li> <li><a href="">menu 1-3</a></li> </ul> </li> <li>menusecond <ul class="level2"> <li><a href="">menu 1-1</a></li> <li><a href="">menu 1-2</a></li> <li><a href="">menu 1-3</a></li> </ul> </li> <li>menuthird <ul class="level2"> <li><a href="">menu 2-1</a></li> <li><a href="">menu 2-2</a></li> <li><a href="">menu 2-3</a></li> </ul> </li> </ul> このHTMLにアコーディオンパネルを追加したいのですが、 多くのサンプルがdlやddで作ったものばかりでこれをul liで作ろうとすると 上手く作動しません。 何か良いJQueryのコーディング例があればご教授お願いいたします。

  • phpでカテゴリページ別に記事を表示

    例えば以下のようなカテゴリメニューがあり、 りんごをクリックすると、ringo.phpにりんごカテゴリに属する記事をすべて表示する。 っといったようなことをする場合、wordpressを使わずにやるにはどうすれば良いのでしょうか? <ul> <li><a href="ringo.php">りんご</a></li> <li><a href="mikan.php">みかん</a></li> <li><a href="budou.php">ぶどう</a></li> </ul> 一番簡単そうなのはカテゴリメニューに以下のようなidをつけて、 もしidが1ならばりんごの記事をすべて書き出すのようにすれば良いのかと思いますが、 このようなやり方をしているサイトはあまり見かけません。 皆さんはブログやCMSでは一般的にどのようなやり方をされているのでしょうか? <ul> <li><a href="ringo.php?id=1">りんご</a></li> <li><a href="mikan.php?id=2">みかん</a></li> <li><a href="budou.php?id=3">ぶどう</a></li> </ul>

    • ベストアンサー
    • PHP

専門家に質問してみよう