【问题标题】:How to concat PHP vars for use in menu如何连接 PHP 变量以在菜单中使用
【发布时间】:2012-09-26 00:30:18
【问题描述】:

我不是 PHP 人,但是我相信 PHP 可以用来完成这个。

基本上我在主菜单 + /about、/blog 等中使用相同的绝对路径,所以我的文件已经是 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>

有人想吗?

【问题讨论】:

  • 这与问题不太相关,但我只想说我喜欢设计 leon :)
  • 相当低效,我的方法是一组部分名称和一个循环。
  • 在 foreach 中做这件事不是更容易吗?并循环通过一系列“导航”项目?也只需执行href="/mymenu/"(效率更高,/ 使其成为绝对路径)。
  • 谢谢@Killrawr 和大量的解决方案!谢谢大家!我试了之后会回到这里...

标签: php html string-concatenation concat


【解决方案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>

这应该做的差不多!

【讨论】:

  • 非常感谢! :D 节省了很多台词,而且动态性感!
  • 没问题,我的朋友 :) 很高兴我能帮上忙。关于点与加的事情。 Javascript、Actionscript 和许多其他语言:"Concat "+"these"。在 PHP 中:"Concat "."these"
【解决方案2】:

您不输出 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>

【讨论】:

    【解决方案3】:

    PHP 使用点符号“.”要连接变量和字符串等。要将字符串“blog”连接到 $athenasweburl,您可以使用

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

    希望对您有所帮助。

    【讨论】:

    【解决方案4】:

    不久前我遇到了类似的问题。

    假设您在其他地方也定义了 $page...

    <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>
    

    【讨论】:

    • 我愿意!这里 php $page = 'home';包括(“包括/athenas_header.php”);每一页都会这样,它会拉入包含导航的头文件,现在试试你的解决方案!
    猜你喜欢
    • 2016-12-20
    • 2012-07-29
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2019-09-15
    • 2019-03-08
    相关资源
    最近更新 更多