【问题标题】:Nivo slider + phpNivo 滑块 + php
【发布时间】:2014-02-16 09:10:53
【问题描述】:

我为一个网站创建了一个自定义 cms,并试图让 nivo 滑块与我的数据库一起工作,但我的 while 循环有问题。 我只将图像的名称存储在数据库中,图像本身存储在一个文件夹中,图像在某种程度上可以工作,但它们出现在另一个上方,实际幻灯片被破坏了。

我的猜测是标题 id 打破了它,但不确定如何从这里开始。任何帮助表示赞赏

这是我的代码:

<div id='slider' class='nivoSlider'>
<?php 
$sql = 'SELECT * FROM slider';
$result = $db->query($sql) or die(mysqli_error());

 while($row = $result->fetch_assoc()){
    $slideshow = $row['slider_id']; 
    print"
        <img src='images/slider/".$row['image'].".jpg' alt='' title='#htmlcaption'>
        </div>
        <div id='htmlcaption' class='nivo-html-caption '>
        <span>".$row['title'] . "</span>    
        </div> ";
}

?>
<div id='preloader'></div>
</div>

【问题讨论】:

  • title='#htmlcaption'
  • 我忘记了 = 但幻灯片仍然损坏,图像显示在另一个之上 - 而不是滑动

标签: php jquery nivo-slider


【解决方案1】:
while($row = $result->fetch_assoc()){
$slideshow = $row['slider_id']; 
print"
    <img src='images/slider/".$row['image'].".jpg' alt='' title'#htmlcaption'>
    </div> // ---------------> Here you are closing div slider
    <div id='htmlcaption' class='nivo-html-caption '>// ----> Error
    <span>".$row['title'] . "</span>    
    </div> ";

}

在 while 循环中,您将关闭 &lt;/div&gt; 而不打开它,这会导致幻灯片放映中断。在 HTML 语法中,ID 必须是唯一的。所以&lt;div id='htmlcaption' class='nivo-html-caption '&gt; 所以改变这部分。

[更新] 将打印更改为

 print" <div class='some_wraper'>
        <img src='images/slider/".$row['image'].".jpg' alt='' title='#htmlcaption'>
        </div> // ---------------> Here now you are closing div some_wraper
        <div class='nivo-html-caption htmlcaption'>// ----> added new class htmlcaption
        <span>".$row['title'] . "</span>    
        </div> ";

更新 固定代码

 <div id='slider' class='nivoSlider'>
    <?php 

    $sql = 'SELECT * FROM slider';
    $result = $db->query($sql) or die(mysqli_error());

     for($i = 0;$row = $result->fetch_assoc();$i++){
        $slideshow = $row['slider_id']; 
        echo "<img src='images/slider/".$row['image'].".jpg' alt='' title='htmlcaption_$i'>";                
        $tiles[$i]=$row['title'];        
    }

    ?>
    </div>        
   <?php //caption divs for slider
      for($i=0;$i<count($tiles);$i++) {
        echo "<div id='htmlcaption_$i' class='nivo-html-caption '>";      
            echo "<span>".$tiles[$i]."</span> </div>";
        }   
    ?>        
    <div id='preloader'></div>
    </div>

【讨论】:

  • 对不起,我想把我的头绕过去,对 php 来说相当新,我应该在关闭 div 之前关闭 php 然后重新打开它吗?或者只是给它一个动态ID?
  • 我这样做了:但仍然无法正常工作:
    ".$row[ '标题'] . "
    ";
  • 试试这个
  • 包装器 div 有点用,但添加了一堆空幻灯片和标题停止显示,将 #htmlcaption 更改为 .htmlcaption 但似乎没有用,因为您将其更改为类
  • @SergioWizenfeld 我已经更新了代码,Nivo Slider 需要另一个单独的 div 用于字幕。 docs.dev7studios.com/jquery-plugins/nivo-slider#jumpNav-3
  • 猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2013-09-10
    • 1970-01-01
    相关资源
    最近更新 更多