2012-09-26 10 views
0

저는 PHP 녀석이 아니지만, PHP를 사용하여이를 수행 할 수 있다고 생각합니다.메뉴에서 사용하기 위해 PHP 바를 연결하는 방법

기본적으로 내 주 메뉴에서/절대적으로 동일한 절대 경로를 사용하고 있습니다./블로그 등 내 파일은 이미 PHP로되어 있습니다. 왜 Var을 사용하지 않을까요? (나는 Flash AS 배경에서 왔습니다.)

테스트 링크 : http://s433108212.onlinehome.us/

이것은 내가 아래에 시도했다, 그러나 아무 소용 :(

<div id="nav_bar"> 

<?php $athenasweburl = 'http://s433108212.onlinehome.us/'; ?> 

<ul class="nav"> 
    <li class="<?php echo $page === 'home' ? "selected" : "" ?>"><a href="<?php $athenasweburl; ?>">Home</a></li> 
    <li class="<?php echo $page === 'about' ? "selected" : "" ?>"><a href="<?php echo ($athenasweburl+'about'); ?>">About</a></li> 
    <li class="<?php echo $page === 'blog' ? "selected" : "" ?>"><a href="<?php $athenasweburl+'blog'; ?>">Blog</a></li> 
    <li class="<?php echo $page === 'book' ? "selected" : "" ?>"><a href="<?php $athenasweburl+'book'; ?>">Book</a></li> 
    <li class="<?php echo $page === 'events' ? "selected" : "" ?>"><a href="<?php $athenasweburl+'events'; ?>">Events</a></li> 
    <li class="<?php echo $page === 'services' ? "selected" : "" ?>"><a href="<?php $athenasweburl+'services'; ?>">Services</a></li> 
    <li class="<?php echo $page === 'contact' ? "selected" : "" ?>"><a href="#dialog" name="modal">Contact</a></li> 
    <li class="search"><input type="text" onfocus="if(this.value == 'Search') { this.value = ''; }" value="Search" /></li> 
    <li class="search_btn"><a href="#" title="Lets find it!"><div class="search_go">Go</div></a></li> 
</ul> 

생각 사람에게 ?

+2

이것은 매우 관련이 없지만 디자인 레온을 좋아한다고 말하고 싶습니다. – Killrawr

+1

오히려 비효율적입니다. 제 접근법은 섹션 이름 배열과 루프가 될 것입니다. –

+0

foreach에서 더 쉽게 수행하지 않겠습니까? 그리고 "네비게이션"아이템의 배열을 통해 반복 할 수 있습니까? 또한 단지'href = "/ mymenu /"'를 수행하면된다. (효율적이 아닌'/'은 절대 경로가된다.) – Killrawr

답변

1

PHP에서 + 숫자를 함께 더합니다. 찾으려는 것은 문자열을 붙이는 것입니다. + 기호를 바꾸십시오. (점) 및 각 문자열 앞에 에코가 있어야 작동 할 수 있습니다.

<div id="nav_bar"> 

<?php 
$menu = array("home","about","blog","book","events","services"); 
function echoListItem($item){ 
    global $page; 
    $url = 'http://s433108212.onlinehome.us/'; 
    if($item != "home") $url .= $item; 
    $selected = $item == $page ? 'selected' : ''; 
    echo '<li class="'.$selected.'"><a href="'.$url.'">'.ucfirst($item).'</a></li>'; 
} 
?> 

<ul class="nav"> 
    <?php array_walk($menu, 'echoListItem'); ?> 
    <li class="<?php echo $page === "contact" ? "selected" : "" ?>"><a href="#dialog" name="modal">Contact</a></li> 
    <li class="search"><input type="text" onfocus="if(this.value == 'Search') { this.value = ''; }" value="Search" /></li> 
    <li class="search_btn"><a href="#" title="Lets find it!"><div class="search_go">Go</div></a></li> 
</ul> 

이것은 거의 동일해야합니다!

+0

WOOT 고맙다! : D 그렇게 많은 라인을 저장하고, 그냥 동적으로 섹시하다! –

+0

문제 없어, 내 친구 :) 행복하게 도와 줄 수있어. 점 대 플러스 것에 대해. Javascript, Actionscript 및 기타 많은 언어 :''Concat "+"this "'. PHP에서 :''Concat '. "these"' –

1

URL을 출력하지 않습니다. 두 번째 절에서 echo을 추가합니다.

<li class="<?php echo $page === 'home' ? "selected" : "" ?>"><a href="<?php echo $athenasweburl; ?>">Home</a></li> 

그리고 연결은 .하지 + 사용합니다.

<li class="<?php echo $page === 'about' ? "selected" : "" ?>"><a href="<?php echo $athenasweburl . 'about'; ?>">About</a></li> 
0

나는 오래 전에 비슷한 문제에 부딪혔다.

<div id="nav_bar"> 

<?php $athenasweburl = 'http://s433108212.onlinehome.us/'; ?> 

<ul class="nav"> 
    <li class="<?php echo ($page === "home" ? "selected" : "") ?>"><a href="<?php $athenasweburl; ?>">Home</a></li> 
    <li class="<?php echo ($page === "about" ? "selected" : "") ?>"><a href="<?php echo ($athenasweburl+'about'); ?>">About</a></li> 
    <li class="<?php echo ($page === "blog" ? "selected" : "") ?>"><a href="<?php $athenasweburl.'blog'; ?>">Blog</a></li> 
    <li class="<?php echo ($page === "book" ? "selected" : "") ?>"><a href="<?php $athenasweburl.'book'; ?>">Book</a></li> 
    <li class="<?php echo ($page === "events" ? "selected" : "") ?>"><a href="<?php $athenasweburl.'events'; ?>">Events</a></li> 
    <li class="<?php echo ($page === "services" ? "selected" : "") ?>"><a href="<?php $athenasweburl.'services'; ?>">Services</a></li> 
    <li class="<?php echo $page === "contact" ? "selected" : "") ?>"><a href="#dialog" name="modal">Contact</a></li> 
    <li class="search"><input type="text" onfocus="if(this.value == 'Search') { this.value = ''; }" value="Search" /></li> 
    <li class="search_btn"><a href="#" title="Lets find it!"><div class="search_go">Go</div></a></li> 
</ul> 
+0

나는 그렇다! 여기 php $ page = 'home'; include ("includes/athenas_header.php"); 그것은 모든 페이지에서 진행되며 탐색기가 포함 된 헤더 파일을 가져 와서 지금 솔루션을 시험해 봅니다! –

1

PHP는 점 표기법을 사용하여 ... 당신은뿐만 아니라 다른 곳에서 정의 된 $ 페이지가 가정 "." $ athenasweburl에 문자열 "블로그"를 연결하는 등의 변수와 문자열을 연결하려면 도움이

$athenasweburl = $athenasweburl."blog/"; 
    echo $athenasweburl; //http://s433108212.onlinehome.us/blog/ 

희망을 사용할 수 있습니다.

+0

어떻게 그걸 리에 넣으시겠습니까? 나는 이것을 시도하고있다 –

+0

Leon, 나는 Esben이 제공 한 기능을 사용할 것이다. 그러나 비슷한 다른 연결을 사용하고 싶다면 여기에 짧은 핸드 기술이있다 : – rwhite35

+0

죄송합니다. 코드는 " target="_blank">Blog입니다. . PHP는 변수를 먼저 처리하기 때문에 $ athenasweburl은 블로그에 문자열이 추가되도록 할당됩니다./다시 echoed되기 전에 루트에 추가됩니다. – rwhite35

관련 문제