【问题标题】:PHP echo the html tag is not at the corresponding placePHP echo html标签不在对应位置
【发布时间】:2014-04-11 03:39:24
【问题描述】:

有两个php文件

第一个php是header.php

<div class="container" id="header">
    <div id="btnGroup">
    <?php
    function setLink($link,$title){
        echo "<a href='$link'>$title</a>";
    }
    ?>
    </div>
</div>
<div class="banner">
    <img class="container" src="images/index_1.gif" />
</div>

第二个是index.php

    <body>
<?php 
    require_once ('header.php'); 
    setLink("#goal","title1");
    setLink("#history","title2");
?>
<div class="container" id="center">
        <img id="history" src="images/intro/intro_01.gif"/>
</div>
<?php require_once ('footer.php'); ?>
</body>

setLink()是回显html标签,我以为结果会是:

<div id="btnGroup"><a href="#goal">title1</a>....</div>

然而事实证明:

<div id="btnGroup"></div><div class="banner">..</div><a href="#goal">title1</a>

为什么会这样以及如何解决?感谢您的帮助

更新:

另外,setLink应该可以在不同的php中调用

例如对于 product.php ,我可以调用 setLink("#product","product");

谢谢

【问题讨论】:

  • 它会输出到您调用setLink 的任何位置,而不是定义setLink 的任何位置。
  • 你应该调用函数到你想打印数据的地方。您可以在文档中的任意位置定义函数。

标签: php html


【解决方案1】:

您应该将函数调用到要打印数据的位置。您可以在文档中的任何位置定义函数。 我已经重写了你的代码。

<?php
    function setLink($link,$title){
        echo "<a href='$link'>$title</a>";
    }
?>
<div class="container" id="header">
    <div id="btnGroup">
    <?php
        setLink("#goal","title1");
        setLink("#history","title2");
    ?>
    </div>
</div>
<div class="banner">
    <img class="container" src="images/index_1.gif" />
</div>
The second is index.php

    <body>
<?php 
    require_once ('header.php');   
?>
<div class="container" id="center">
        <img id="history" src="images/intro/intro_01.gif"/>
</div>
<?php require_once ('footer.php'); ?>
</body>

【讨论】:

  • 为此,您应该在该文件中包含/要求文件 header.php(定义 setlink 函数的文件)。
  • 否则需要在需要调用函数的每个页面中定义函数。但这不是一个好习惯。
【解决方案2】:

您在标题中定义 setlink,但您定义函数的位置与链接出现的位置无关。

您在链接出现的位置调用 setlink。

修改你的代码如下:

header.php

<?php
    function setLink($link,$title){
        echo "<a href='$link'>$title</a>";
    }
?>
<div class="container" id="header">
    <div id="btnGroup">
    <?php setLink("#goal","title1");
          setLink("#history","title2"); ?>
    </div>
</div>
<div class="banner">
    <img class="container" src="images/index_1.gif" />
</div>

index.php

    <body>
<?php 
    require_once ('header.php');
    // Do not call setLink here, it's called in the header include....
?>
<div class="container" id="center">
        <img id="history" src="images/intro/intro_01.gif"/>
</div>
<?php require_once ('footer.php'); ?>
</body>

【讨论】:

  • 我认为他的总体目标是在每个页面上设置不同的链接,所以从各个页面调用setLink 并让它们出现在公共标题中。
  • @sevenseacat - 不知道你从哪里得到这个想法。我根本没有在问题中看到这一点。
  • 哦,我可能是错的,但这是我得到的印象。
  • 是的,如果我想在不同的页面设置链接怎么办?谢谢
【解决方案3】:

您定义了函数而不是调用它。 将 header.php 的代码更改如下:

<div class="container" id="header">
    <div id="btnGroup">

    <?php
     setLink("#goal","title1");
     setLink("#history","title2");
    ?>
    </div>
</div>
<div class="banner">
    <img class="container" src="images/index_1.gif" />
</div>

您可以在 index.php 中定义函数 setlink。将函数定义放在文件中的任何位置,例如在 index.php 的底部

<body>
<?php 
    require_once ('header.php'); 
?>
<div class="container" id="center">
        <img id="history" src="images/intro/intro_01.gif"/>
</div>
<?php require_once ('footer.php'); ?>
</body>

<?php
 function setLink($link,$title){
      echo "<a href='$link'>$title</a>";
 }
?>

【讨论】:

  • 创建一个 func.php 文件,在其中定义函数 setlink 或您需要能够从任何页面调用的任何其他函数,并将其包含在您想要的每个页面中。
猜你喜欢
  • 2016-08-24
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
相关资源
最近更新 更多