2012-11-29 75 views
0

我有一個圖片庫,圖片下方有一個信息欄和一個關閉按鈕,標題和項目描述。變量爲空時出現Div類。我如何刪除它們?

但問題是,如果我將標題和描述留空,信息欄和十字仍會出現。當標題和描述爲空時,我希望他們都不在場。我不能在if($ project1title!=='')等 之後放置infobar和infobar-close div類,因爲那樣我就不得不爲每個項目重複它們,然後我會有多個infobar和infobar-關閉div類。

我該如何解決這個問題?

<div class="infobar"><div class="infobar-close"></div> 
if ($project1title !== '') if ($project1description !== '') { 
echo '<span id="title"></span><span id="description"></span>'; 
if ($project2title !== '') if ($project2description !== '') { 
echo '<span id="title"></span><span id="description"></span>'; 
if ($project3title !== '') if ($project3description !== '') { 
echo '<span id="title"></span><span id="description"></span>'; 
if ($project4title !== '') if ($project4description !== '') { 
echo '<span id="title"></span><span id="description"></span>'; 
</div> 
+2

您應該使用數組爲你的項目的標題和描述。 –

回答

0

你需要改變你的邏輯:

  • 首先建立包含要重複一下HTML字符串;
  • 如果找到內容,在路上設置一個標誌;
  • 如果您的標記已設置,請回顯您的html字符串。

除了HTML中的ID必須是唯一的。

一個例子:

$html = '<div class="infobar"><div class="infobar-close"></div>'; 
$content = false; 

if ($project1title !== '' && $project1description !== '') 
{ 
    $html .= '<span id="title"></span><span id="description"></span>'; 
    $content = true; 
} 
// etc. 

$html .= '</div>'; 

if ($content) 
{ 
    echo $html; 
} 
+0

這個工程當我只有一個像你的例子一樣的項目,但當我開始添加項目2,3和4等,它混亂了。我猜這是因爲我需要每個人的唯一ID?我該如何做到這一點? –

+0

@Emily Harris您應該使用數組,然後您可以使用數組索引鍵作爲在ID之後輸入的數字。 – jeroen

+0

我會在哪裏將數組索引鍵放在上面的代碼中? –

0

你要問,如果任何projectTitles的設置,而不是空

,或者你把所有的標題和描述成一個陣列,並做一個foreach ...這節省了一些代碼

$infos = array(
1 => array('title' => 'abc', 'description' => 'blablabla'), 
2 => array('title' => 'abc', 'description' => 'blablabla'), 
.... 
); 

if(is_array($infos) && count($infos) > 0){ 
    echo '<div class="infobar"><div class="infobar-close"></div>'; 
    foreach ($infos as $info) 
     if(!empty($info['title']) && !empty($info['description'])) 
      echo '<span id="title"></span><span id="description"></span>'; 
} 
0

我會建議使用您的項目的數組結構。一些類似以下內容:

$projects = array(); 
$projects[0] = array("title"=>"Firstproj", "description"=>"Lorem ipsum"); 
$projects[1] = array("title"=>"Secondproj", "description"=>"Lorem ipsum"); 

這樣的話,你可以簡單地迭代這個數組:

foreach($projects as $index => $project){ 
    if ($project[$index]["title"] !== '' && $project[$index]["description"] !== '') { 
     echo '<div class="infobar"> 
        <div class="infobar-close"></div> 
        <span id="title">$project[$index]["title"]</span> 
        <span id="description">$project[$index]["description"]</span> 
       </div>'; 
    } 
} 
相關問題