mon*_*onk 1 php mysql carousel twitter-bootstrap
我正在尝试制作一个使用Twitter Bootstrap默认JavaScript和CSS的旋转木马,但应该从MySQL数据库中获取图像.
我试图用PHP动态的旋转木马的HTML是这样的:
<div class="carousel-inner">
<div class="active item">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginLast">
</div>
<a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">›</a>
</div>
Run Code Online (Sandbox Code Playgroud)
我期待的PHP文件的最终结果是这样的
<div class="carousel-inner">
<?php renderAds(); ?>
</div>
Run Code Online (Sandbox Code Playgroud)
我写的PHP函数是这样的:
function renderAds(){
$query = queryAds();
$query_exe = mysql_query($query);
if(mysql_num_rows($query_exe) == 0){
echo '<img src="images/sampleAd.jpg" >';
}else{
$numb =1;
$flag =1;
while($fetched_data = mysql_fetch_array($query_exe)){
if($numb == 1){
if($flag == 1){
echo '<div class="active item">';
}else{
echo '<div class="item">';
}
}elseif($numb == 4){
echo '<a href="'.$fetched_data['url'].'" class="pull-left marginLast" ><img src="'.$fetched_data['image_url'].'"></a>';
echo '</div>';
$numb =0;
}else{
echo '<a href="'.$fetched_data['url'].'" class="pull-left marginTop" ><img src="'.$fetched_data['image_url'].'"></a>';
}
$numb++;
$flag++;
}
echo '<a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a>';
echo '<a class="carousel-control right" href="#myCarousel" data-slide="next">›</a>';
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,通过与twitter bootstrap的默认轮播不同,我用4张图片制作每张幻灯片,我希望每张幻灯片转换包含4张图片,而不是默认情况下一张幻灯片的单张图片.在HTML中它可以工作,但是当我用我的PHP函数替换它时,第一张幻灯片可以工作,但如果我按下旋转木马中的下一个箭头整个div崩溃.
我怎样才能使它工作?
注意:此处最后一张图片必须包含marginLast类,另一张图片必须包含marginTop和pull-left类.
我期望在HTML中呈现的是这样的:
<div class="carousel-inner">
<div class="active item">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginLast">
</div>
<div class="item">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginLast">
</div>
<div class="item">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginTop">
<img src="images/sampleAd.jpg" class="pull-left marginLast">
</div>
<a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">›</a>
</div>
Run Code Online (Sandbox Code Playgroud)
如何使我的PHP函数显示如上所示的结果标记?
编辑:我得到的输出是这样的:
<div id="myCarousel" class="carousel slide">
<!-- Carousel items -->
<div class="carousel-inner">
<div class="active item">
<a href="xx2" class="pull-left marginTop" ><img src="images/sampleAd.jpg"></a>
<a href="xx" class="pull-left marginTop" ><img src="images/sampleAd.jpg"></a>
<a href="sample.com" class="pull-left marginLast" ><img src="images/sampleAd.jpg"></a>
</div>
<a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">›</a>
</div><!-- end carousel-inner -->
</div><!-- myCarousel -->
Run Code Online (Sandbox Code Playgroud)
根据标记,这应该工作,但它不起作用,默认情况下,如果没有更多的幻灯片应该被禁用,但它是可点击的箭头.
你有MySQL查询只返回一个数组.这样,您的查询可以重复使用(然后可以成为一个函数),您可以根据自己的需要呈现数据.
<?php
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
$sql = "SELECT * FROM table";
$res = $mysqli->query($sql);
$rows = array();
while ($row = $res->fetch_assoc()) {
$rows[] = $row;
}
?>
<div class="carousel">
<div class="carousel-inner">
<?php $i = 1; ?>
<?php foreach ($rows as $row): ?>
<?php $item_class = ($i == 1) ? 'item active' : 'item'; ?>
<div class="<?php echo $item_class; ?>">
<a href="<?php echo $row['url']; ?>">
<img src="<?php echo $row['image']; ?>" alt="<?php echo $row['title']; ?>" />
</a>
</div>
<?php $i++; ?>
<?php endforeach; ?>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
您显然需要更改数据库查询以及foreach循环中使用的值.我也使用了这些mysqli函数,因为这些mysql函数现在已被弃用,而有利于MySQLi(改进了MySQL).
| 归档时间: |
|
| 查看次数: |
16259 次 |
| 最近记录: |