2014-04-18 45 views
0

我試圖用來自數據庫的內容填充我的文章。試圖在頁面中顯示相同的內容,也在fancybox中

我有我的文章與標題,圖像,日期,內容和鏈接(閱讀更多)打開fancybox將顯示本文相同的內容,但在fancybox。

因此,我有我的div id="show-container",它對應於在fancybox中顯示內容的div。

這個div有顯示:無在CSS中,當與#show HREF和class =「的fancybox」鏈接的用戶點擊,在這裏它僅出現:

<a class="fancybox" href="#show">Read more</a> 

但我想表現出同樣的fancybox中的內容,所以我填寫這個「表演」div與我在文章中的相同信息。

我的文章工作正常,每篇文章都有正確的名稱,圖片和內容。

但是當我點擊打開每篇文章的fancybox所有fancyboxs 具有相同的內容,這是我的第一篇文章的內容。

任何人都知道我可以解決這個問題嗎?

$readPost = $pdo->prepare("SELECT * FROM posts ORDER BY date DESC LIMIT 0,4"); 
$readPost->execute(); 
$folder = '../images/'; 
while ($readPostResult = $readPost->fetch(PDO::FETCH_ASSOC)) 
{ 

echo '<article id="loop-news">'; 
     echo '<img src="'.$folder.$readPostResult['thumb'].'" title="'.$readPostResult['title'].'"/>'; 
     echo '<h2>'; 
     echo '<a href="#show" class="x" >'.$readPostResult['title'].'</a><br />'; 
     echo '</h2>'; 
     echo '<p>'.$readPostResult['content'].'<a class="fancybox" href="#show">Read more</a></p>'; 

     echo '<div id="show-container">'; 
     echo '<div id="show">'; 
      echo '<h2>'.$readPostResult['title'].'</h2>'; 
      echo '<br />'; 
      echo '<img src="'.$folder.$readPostResult['thumb'].'" title="'.$readPostResult['title'].'"/>'; 
      echo '<p>'.$readPostResult['content'].'<br /></p>'; 
      echo '<a class="button" href="index.html">Back</a>'; 
     echo '</div>'; 
     echo '</div>'; 
echo '</article>'; 
} 

?> 

我想我需要傳遞的每個消息的ID,當我在A HREF點擊:

echo '<p>'.$readPostResult['content'].'<a class="fancybox" href="#show">Read more</a></p>'; 

你知不知道我怎樣才能做到這一點?因爲我已經在我的鏈接中使用「#show#」來打開fancybox ..

回答

1

你必須使用類的CSS,而不是ID

+0

謝謝你的回答,但問題仍然存在! – OzzC

+0

謝謝你MYoussef的主要問題是真的! :) – OzzC

1

您的ID值意味着元素是唯一的。由於您是在循環中生成內容,因此您的元素中會有多個重複的ID值。嘗試將其更改爲這樣:

$i = 0; 
while ($readPostResult = $readPost->fetch(PDO::FETCH_ASSOC)) 
{ 

    echo '<article id="loop-news-' . $i . '">'; 
    echo '<img src="'.$folder.$readPostResult['thumb'].'" title="'.$readPostResult['title'].'"/>'; 
    echo '<a href="#show" id="info-' . $i . '"><i class="fa fa-download"></i></a>'; 
    echo '<h2>'; 
    echo '<a href="#show" class="x" >'.$readPostResult['title'].'</a><br />'; 
    echo '</h2>'; 
    echo '<span>'.date('d/m/Y H:i',strtotime($readPostResult['date'])).'</span>'; 
    echo '<p>'.lmWord($readPostResult['content'],270).'<a class="fancybox" href="#show-' . $i . '" id="showFancy-' . $i . '">Read more</a></p>'; 

    echo '<div id="show-container-' . $i . '">'; 
    echo '<div id="show-' . $i . '">'; 
     echo '<h2>'.$readPostResult['title'].'</h2>'; 
     echo '<br />'; 
     echo '<img src="'.$folder.$readPostResult['thumb'].'" title="'.$readPostResult['title'].'"/>'; 
     echo '<p>'.$readPostResult['content'].'<br /></p>'; 
     echo '<a class="button" href="index.html">Back</a>'; 
    echo '</div>'; 
    echo '</div>'; 
    echo '</article>'; 

    ++$i; 
} 

你會發現,我創建了while循環外的$i變量,並將其追加的$i所有的ID元素的值。一旦在循環結束時,它會將$i增加1,以便循環中的所有ID都是唯一的。

+0

謝謝您的回答,但與該方法我的文章是沒有我在CSS格式,因爲我沒有在CSS格式#循環新聞-1和#loop-news-2等等! – OzzC

+0

@OzzC你需要改變你的CSS來爲你的設計使用一個類,而不是ID。 ID必須是唯一的,意味着:它們只能出現在您的頁面上。 – Thorsten

+0

謝謝你的回答Thorsten,但我試圖轉換類的ID,但它似乎fancybox不工作與類。如果在我的鏈接中打開fancybox(Read more),我使用href =「。show」,然後將div id =「show」更改爲div class =「show」,fancybox不打開! – OzzC