Bootstrap ve PHP Döngü
<?php
<div class="carousel-item active">
<img src="'.$dizin.$dosya.'" class="d-block w-100">
</div>
?>
Bootstrap'ın carousel eklentisini kullanıp, klasördeki
resimleri döngüye sokup çektiriyorum. Ama ekranda bir tane resim
göstermesi gerekirken class ın içindeki "active" tüm resimlere geliyor. Bu yüzden
slider şeklinde gösteremiyorum, bu nasıl yapabilirim ?
örnek;
<html
<div class="carousel-inner">
<div class="carousel-item active">
<img src="portfoy/06012021-183159/r_15.jpg" class="d-block w-100">
</div>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="portfoy/06012021-183159/r_17.jpg" class="d-block w-100">
</div>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="portfoy/06012021-183159/r_19.jpg" class="d-block w-100">
</div>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="portfoy/06012021-183159/r_21.jpg" class="d-block w-100">
</div>
</div>
>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
Şöyle dene
<?php
$dizin = "portfoy/".$kLasorAdi."/";
$satirLimit = 6;
function uzanti($file_name) {
return end(explode('.',$file_name));
}
$dir = opendir($dizin);
$satir = 0;
// ilave
$carousel = 0;
$html = "";
while (($dosya = readdir($dir)) !== false){
if(! is_dir($dosya)){
if ((uzanti($dosya)=="jpg")||
(uzanti($dosya)=="JPG")||
(uzanti($dosya)=="jpeg")||
(uzanti($dosya)=="JPEG")||
(uzanti($dosya)=="gif")||
(uzanti($dosya)=="GIF")){
$satir++;
$html .= '
<div class="carousel-item '.($carousel==0?'active':'').'">
<img src="'.$dizin.$dosya.'" style="width: 100%; height: 547px;" class="d-block w-100">
</div>
';
$carousel++;
if ($satir==$satirLimit){
echo "<br />n";
}
}
}
}
closedir($dir);
?>
Html de soyle
<div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<?=$html?>
</div>
<a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<?php
$dizin = "portfoy/".$kLasorAdi."/";
$satirLimit = 6;
function uzanti($file_name) {
return end(explode('.',$file_name));
}
$dir = opendir($dizin);
$satir = 0;
while (($dosya = readdir($dir)) !== false){
if(! is_dir($dosya)){
if ((uzanti($dosya)=="jpg")||
(uzanti($dosya)=="JPG")||
(uzanti($dosya)=="jpeg")||
(uzanti($dosya)=="JPEG")||
(uzanti($dosya)=="gif")||
(uzanti($dosya)=="GIF")){
$satir++;
echo '
<div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="'.$dizin.$dosya.'" style="width: 100%; height: 547px;" class="d-block w-100">
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>';
if ($satir==$satirLimit){
echo "<br />n";
}
}
}
}
closedir($dir);
?>
Yaptığım sistem bu.
Anladığım kadarıyla active classını sadece bir div-e vermeniz gerek. onun içinde şöyle basit bir şey yapa bilirsiniz döngünüzde.
<?php
//Örnek döngü
// döngü başlamamıştan
$i = 0;
// döngünün içinde
foreach ($data as $row) {
echo '<div class="carousel-item '.($i==0?'active':'').'">
<img src="'.$dizin.$dosya.'" class="d-block w-100">
</div>';
$i++;
}
?>