2013-10-25 55 views
-3

我正在使用CMS ProscessWire。如何在foreach循环PHP中用if语句更改图像?

我有一个工作的foreach循环,显示孩子的标题和5个链接。链接显示为图像。这工作完美无瑕。但是,我想要一个空白的链接黑白图像来显示没有链接。所以我做了一个if语句。但是,当我把if语句放在循环中时,显示的唯一子节点就是具有空链接的节点。

有谁知道tot如何解决这个问题?我认为这是一件简单的事情,但无法弄清楚。

PHP-代码:

$rdio='rdio.png'; 
    $itunes='itunes.png'; 
    $xbox='xbox.png'; 
    $googleplay='googleplay.png'; 
    $spotify='spotify.png'; 
    $deezer='deezer.png'; 

    foreach($page->children as $child) 

    if(!$child->Rdio) { 
$rdio='rdiog.png'; 
    } 
    else 
    { 
    $rdio='rdio.png'; 
    } 

     echo "<ul style='background-color:#CCC;'>"."<li><h1>{$child->title}</h1></li>".<li><a class='rdio' href='{$child->Rdio}'><img src='../site/templates/img/$rdio' alt='rdio'/></a></li>"."<li><a class='itunes' href='{$child->iTunes}'><img src='../site/templates/img/$itunes' alt='itunes'/></a></li>"."<li><a class='xbox' href='{$child->Xbox}'><img src='../site/templates/img/$xbox' alt='xbox'/></a></li>"."<li><a class='googleplay' href='{$child->GooglePlay}'><img src='../site/templates/img/$googleplay' alt='googleplay'/></li>"."<li><a class='spotify' href='{$child->Spotify}'><img src='../site/templates/img/$spotify' alt='spotify'/></a></li>"."<li><a class='deezer' href='{$child->Deezer}'><img src='../site/templates/img/$deezer' alt='deezer'/></a></li>"."</ul><br/>";    
+0

请更多的细节解释,并添加一些代码,以便我们可以了解如何帮助你 – Syd

回答

0

你缺少周围foreach一些括号,只有执行以下IF语句,并继续打印出一个元素在页面上。为了解决这个问题,只需添加括号foreach循环是这样的:

$rdio='rdio.png'; 
    $itunes='itunes.png'; 
    $xbox='xbox.png'; 
    $googleplay='googleplay.png'; 
    $spotify='spotify.png'; 
    $deezer='deezer.png'; 

    foreach($page->children as $child) { 

    if(!$child->Rdio) { 
$rdio='rdiog.png'; 
    } 
    else 
    { 
    $rdio='rdio.png'; 
    } 

     echo "<ul style='background-color:#CCC;'>"."<li><h1>{$child->title}</h1></li>".<li><a class='rdio' href='{$child->Rdio}'><img src='../site/templates/img/$rdio' alt='rdio'/></a></li>"."<li><a class='itunes' href='{$child->iTunes}'><img src='../site/templates/img/$itunes' alt='itunes'/></a></li>"."<li><a class='xbox' href='{$child->Xbox}'><img src='../site/templates/img/$xbox' alt='xbox'/></a></li>"."<li><a class='googleplay' href='{$child->GooglePlay}'><img src='../site/templates/img/$googleplay' alt='googleplay'/></li>"."<li><a class='spotify' href='{$child->Spotify}'><img src='../site/templates/img/$spotify' alt='spotify'/></a></li>"."<li><a class='deezer' href='{$child->Deezer}'><img src='../site/templates/img/$deezer' alt='deezer'/></a></li>"."</ul><br/>";  
+0

非常感谢!没有注意到哈哈。 – user2919273

0

尝试使用empty方法:

$rdio='rdio.png'; 
$itunes='itunes.png'; 
$xbox='xbox.png'; 
$googleplay='googleplay.png'; 
$spotify='spotify.png'; 
$deezer='deezer.png'; 

foreach($page->children as $child) { 

if(empty($child->Rdio)) { 
$rdio='rdiog.png'; 
} 
else 
{ 
$rdio='rdio.png'; 
} 

    echo "<ul style='background-color:#CCC;'>"."<li><h1>{$child->title}</h1></li>".<li><a class='rdio' href='{$child->Rdio}'><img src='../site/templates/img/$rdio' alt='rdio'/></a></li>"."<li><a class='itunes' href='{$child->iTunes}'><img src='../site/templates/img/$itunes' alt='itunes'/></a></li>"."<li><a class='xbox' href='{$child->Xbox}'><img src='../site/templates/img/$xbox' alt='xbox'/></a></li>"."<li><a class='googleplay' href='{$child->GooglePlay}'><img src='../site/templates/img/$googleplay' alt='googleplay'/></li>"."<li><a class='spotify' href='{$child->Spotify}'><img src='../site/templates/img/$spotify' alt='spotify'/></a></li>"."<li><a class='deezer' href='{$child->Deezer}'><img src='../site/templates/img/$deezer' alt='deezer'/></a></li>"."</ul><br/>";