PHP的帮助。我需要一个链接才能在新窗口中打开

问题描述:

我有一个CMS需要修改。我希望外部链接,在新窗口中target="_blank"PHP的帮助。我需要一个链接才能在新窗口中打开

这里打开的代码:

<?php foreach ($this->menus as $menu) { ?> 
<a href="<?php echo $menu->type == 'External' ? $menu->link : "/Index/Content/Id/{$menu->id}" ?>"> 

我曾尝试:

<?php echo ($menu->type == 'External') ? "{$menu->link} target=_blank" : "/Index/Content/Id/{$menu->id}" ?> 

所有环节目前在靶坯开放。我怎样才能使目标空白的外部链接打开?

您需要关闭双引号。看看你呈现的HTML &你会看到这个问题。

+3

显示他需要做什么,不要将它作为练习。 – Barmar

<?php echo ($menu->type == 'External') ? 
    "{$menu->link} target='_blank'" : 
    "/Index/Content/Id/{$menu->id}"; 
. '"' ?> 

这有靠近你与<a href="打开了双引号,并把目标投向引号的作用。这应该可以解决你的问题。

而是在src属性进行操纵,使你的代码更易读:

<?php if($menu->type == 'External') { ?> 
    <a href="<?php echo $menu->link; ?>" target="_blank"> 
<?php } else { ?> 
    <a href="/Index/Content/Id/<?php echo $menu->id; ?>"> 
<?php } ?> 

目前,这条线:

<?php echo ($menu->type == 'External') ? "{$menu->link} target=_blank" : "/Index/Content/Id/{$menu->id}" ?> 

此格式创建链接:

<a href="http://example.com target=_blank"> 

更改为

<?php echo ($menu->type == 'External') ? "{$menu->link}\" target=\"_blank" : "/Index/Content/Id/{$menu->id}" ?> 

将修复它,你可以用你的方式来做到这一点,因为你关闭href属性用双引号(\"),然后才呼应三元运算符的结果,当添加target属性 - 你需要考虑到你与"包装的PHP标签,你回声的网址。

+0

所有链接打开目标空白。我怎样才能使目标空白中打开的外部链接? – chonko

+0

如果所有链接都在新窗口中打开,那么我怀疑'$ menu-> type'没有正确设置。 @Alon提供的代码是正确的。 –