IF / ELSE语句中的动态链接

时间:2015-01-15 00:06:14

标签: php dynamic hyperlink

我为任何滥用术语道歉......我是一个菜鸟......

我有一个动态创建的页面,其中包含动态链接。我添加了一个IF / ELSE语句,根据变量$ rowsphoto中的项目数显示不同的单词。

不同的单词显示正确,但生成的URL包含所有PHP,而不是生成正确的URL。

这是原始代码,工作正常:

<?php if($portfolioid != 0) { ?>
    <div class="extrafield">Additional works in <a href="index.php?option=com_jartists&view=portfolio&aid=<?php echo $artistid;?>&pid=<?php echo $portfolioid; ?>&album=<?php echo $albumid;?>&id=<?php echo $photoidd; ?>&Itemid=105" class="portfoliocol">Portfolio:</a></div>

这是我添加IF / ELSE语句后的代码:

<?php if($portfolioid != 0) { ?>
    <div class="extrafield">    
<?php
if ($rowsphoto <= 4){
    echo "Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=<?php echo $artistid;?>&pid=<?php echo $portfolioid; ?>&album=<?php echo $albumid;?>&id=<?php echo $photoidd; ?>&Itemid=105' class='portfoliocol'>Edition:</a>";
} else {
    echo "Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=<?php echo $artistid;?>&pid=<?php echo $portfolioid; ?>&album=<?php echo $albumid;?>&id=<?php echo $photoidd; ?>&Itemid=105' class='portfoliocol'>Portfolio:</a>";
}                          
?>
</div>

我通过几次语法检查运行代码,它们都没有错误地返回。我究竟做错了什么?这甚至可能吗?

2 个答案:

答案 0 :(得分:0)

最好像这样正确使用它:

<?php if($portfolioid != 0): ?>
    <div class="extrafield">
    <?php if($rowsphoto <= 4): ?>
        Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=<?php echo $artistid; ?>&pid=<?php echo $portfolioid; ?>&album=<?php echo $albumid; ?>&id=<?php echo $photoidd; ?>&Itemid=105' class='portfoliocol'>Edition:</a>
    <?php else: ?>
        Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=<?php echo $artistid; ?>&pid=<?php echo $portfolioid; ?>&album=<?php echo $albumid; ?>&id=<?php echo $photoidd; ?>&Itemid=105' class='portfoliocol'>Portfolio:</a>
    <?php endif; ?>
    </div>
<?php endif; ?>

你非常混淆htmlphp。您应该将它们分开以保持代码清晰简洁。


显示php而不是正确变量的问题是因为(as @scrowler said):

  

你不能在PHP中使用PHP标签,你只需要转义字符串   界限并使用。连接运算符而不是尝试打开   新的PHP标签,例如echo“String here”。 $ varname的;而不是回声   “字符串在这里”

答案 1 :(得分:0)

虽然Darren的回答是正确的,但你也可以留在php里面

<?php
    if($portfolioid != 0) {
        echo '<div class="extrafield">';    

        if ($rowsphoto <= 4){
            echo "Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=$artistid&pid=$portfolioid&album=$albumid&id=$photoidd&Itemid=105' class='portfoliocol'>Edition:</a>";
        } else {
            echo "Additional works in <a href='index.php?option=com_jartists&view=portfolio&aid=$artistid&pid=$portfolioid&album=$albumid&id=$photoidd&Itemid=105' class='portfoliocol'>Portfolio:</a>";
        }                          

        echo '</div>';
    }
?>