2

したがって、私のページには、ページのさまざまな部分で多くのインクルード呼び出しがあります。これらのインクルードのほとんどには、$_GET 変数を取得する何らかの関数があります。GET 変数を取得しようとしたときに何も返さないナビゲーション ファイルを除いて、それらはすべて正常に動作します。

nav.php

<? require_once("config.php"); require_once("functions.php"); ?>

<div id="nav">

    <ul>

        <? initializeMainNav( $_GET['page'] ); ?>

    </ul>

</div>

function.php 内

function initializeMainNav( $curPage )
{

    // array ( slug, name ) of navigation items

    $nav = array(
        array( "", "Home" ),
        array( "case_studies", "Investment Case Studies" ),
        array( "current_inv", "Current Investments" ),
        array( "about", "About MDIG" ),
        array( "management", "Management" ),
        array( "news", "News" ),
        array( "services", "Services" ) );

    // Print out each nav item, and highlight the current page nav item

    for( $i = 0; $i < count( $nav ); $i++ ) {

        echo "  <li><a ";

        if( $nav[$i][0] == $curPage )
            echo "class=\"active\" ";

        echo "  href=\"?page=" . $nav[$i][0] . "\">" . $nav[$i][1] . "</a></li> ";

    }

}

$_GET['page'] は、ページの他のすべての部分で機能する場合でも、常に空を返します。あなたたちは私が間違っていることを見ますか?

編集:

index.phpHEADERはパスを定義する定数変数で、次の場所にあります。config.php

<? require_once("config.php"); require_once("functions.php"); ?>


<? include(HEADER); ?>

<body>

    <div id="wrapper">

        <div id="logo"> 
            <a href="<? echo DOMAIN; ?>"><img src="<? echo IMAGES; ?>/logo.png" alt="<? echo COMPANY; ?>"></a>
        </div>

        <div class="clear"></div>


        <? include(NAV); ?>


        <div id="content_wrapper">

            <!-- Find and display appropriate page -->
            <? displayPage( $_GET['page'] ); ?>

        </div>

        <div class="clear"></div>


        <? include(FOOTER); ?>

    </div>

</body>
</html>
4

1 に答える 1

0

これが必ずしも機能しない理由についての答えを提供するとは限りませんが、次のようなものはどうでしょうか。

関数.php

function echoMainNav($curPage)
{
   echo '<div id="nav"><ul>';
   echo initializeMainNav( $curPage );
   echo '</ul></div>';
}

somepage.php

<? require_once("config.php"); require_once("functions.php"); ?>


<? include(HEADER); ?>

<body>

    <div id="wrapper">

        <div id="logo"> 
            <a href="<? echo DOMAIN; ?>"><img src="<? echo IMAGES; ?>/logo.png" alt="<? echo COMPANY; ?>"></a>
        </div>

        <div class="clear"></div>


        <? echoMainNav( $_GET['page'] ); ?>


        <div id="content_wrapper">

            <!-- Find and display appropriate page -->
            <? displayPage( $_GET['page'] ); ?>

        </div>

        <div class="clear"></div>


        <? include(FOOTER); ?>

    </div>

</body>
</html>

またはさらに良い:

テンプレート.php

define('TEMPLATES_MAIN_NAV', '<div id="nav"><ul>%s</ul></div>');

関数.php

function getMainNav($curPage)
{
   return sprintf(TEMPLATES_MAIN_NAV, initializeMainNav( $curPage ) );
}

somepage.php

<?= getMainNav($_GET['page']); ?>
于 2012-06-29T00:41:17.060 に答える