Archief - PHP/JS: Foto's worden omgekeerd opgehaald

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

TiZon

Legacy Member
Hey

Ik gebruikvolgend script om foto's uit een map te halen:
PHP:
//afbeelden van afbeeldingen 
print "<center>\n<table width='*' border='1' bordercolor='#000000' cellspacing='0' cellpadding='2'>\n"; 

for($i=0;$i<$rows;$i++) 
{ 
        print "\t<tr>\n"; 
        for($j=0;$j<$cols;$j++) 
        { 
                if(current($output) != false) 
                { 
                        $pic = current($output); 

                        $size = getimagesize($dir.$pic); 
                        $height_button = $size[1] + 70; 
                        $value = current($output); 
                        print "\t\t<td width='100' align=center>\n\t\t\t<a class='thickbox' rel='Italie 2007' href='$dir$value';>\n\t\t\t\t<img width='100' height='100' border='0' src='$dir$value'>\n\t\t\t</a>\n\t\t</td>\n\n"; 
                        next($output); 
                } 
                else 
                { 
                        print "\t\t<td width='100' height='100' align='center'>&nbsp;</td>\n"; 
                } 
        } 
        print "\t</tr>\n"; 
}

Nu komt de laatste echter eerst, wat doe ik juist fout?

Smoerf

Legacy Member
sorteer je array :)

Wat is $rows? haal je dat uit je db, is dat een map die je uitleest?

Tyfius

Legacy Member
Ik denk niet dat $rows en $cols er veel mee te maken hebben. Die dienen alleen maar om zijn tabellen te ordenen.

Nu, volgens mij ligt het probleem bij het inlezen van de array ($output). Het is inderdaad best deze te sorteren alvorens af te drukken. Kijk eens naar de sort functie.

killgore

Legacy Member
hoe haal je die $output array op :)? 99% zekerheid is die sort zelfs overbodig en ligt het aan de creatie-code van die array.

edit: en een img tag sluit je met />, niet met > alleen.

edit2: wat doet die ; in je <a>-tag? En je eindigt de table-tag toch mag ik hopen? Het kan immers ook aan foute html-liggen (hoewel ik dat iets onwaarschijnlijker acht).

TiZon

Legacy Member
PHP:
?php 

$dir = 'fotos/'; 

//inhoud van de directory ophalen 
$handle = opendir($dir); 

while ($file = readdir($handle)) 
{ 
        if($file == '.' || $file == '..') 
                continue; 
        else 
                $result_array[]=$file; 
} 
closedir($handle); 

array_multisort($result_array, SORT_DESC); 

?>  
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/thickbox.js"></script>
<link rel="stylesheet" href="css/thickbox.css" type="text/css" media="screen" />
<title>Italië 2007</title>
</head> 
<style> 

body 
{ 
        font-family: Verdana, Arial, Helvetica, sans-serif; 
        font-size: 12px; 
        color: #000000; 
        background-color: #FFFFFF 
} 
span 
{ 
        font-family: Verdana, Arial, Helvetica, sans-serif; 
        font-size: 12px; 
        font-weight: bold; 
        color: #CC6633 
} 

a:link { color: #000000; font-size: 12px } 
a:visited { color: #31928C; font-size: 12px } 
a:active { color: #CCFFCC; font-size: 12px } 
a:hover { color: #CC3333; font-size: 12px } 

</style> 

<body> 

<?php 
$rows = 5; 
$cols = 5; 

//pagina nummer ophalen, indien geen pagina nummer op 0 zetten 
if(isset($_GET['page'])) 
{ 
        $page = $_GET['page']; 
} 
else 
{ 
        $page = 0; 
} 

//totaal aantal foto's, om het aantal pagina's uit te rekenen 
$num_pics = count($result_array); 

//wat vars en andere rommel om de juiste pagina's en array's door te lopen 
$cells = $rows * $cols; 
$pages = ceil($num_pics / ($rows * $cols)); 
$num_pages = $pages - 1; 
$output = array(); 
$slices = array(); 
$push = 0; 
$showpage = $page + 1; 

//array vullen met waarden voor de slice om afbeeldingen per pagina weer te geven 
for($k=0;$k<$pages;$k++) 
{ 
        array_push($slices, $push); 
        $push = $push + $cells; 
} 

//lusje om te kijken op welke pagina we zijn en vervolgens de goede set afbeeldingen uit $result_array halen 
for($k=0;$k<$pages;$k++) 
{ 
        if($page == key($slices)) 
        { 
                $output = array_slice($result_array, current($slices), $cells); 
        } 
        next($slices); 
} 

reset($output); 

//afbeelden van afbeeldingen 
print "<center>\n<table width='*' border='1' bordercolor='#000000' cellspacing='0' cellpadding='2'>\n"; 

for($i=0;$i<$rows;$i++) 
{ 
        print "\t<tr>\n"; 
        for($j=0;$j<$cols;$j++) 
        { 
                if(current($output) != false) 
                { 
                        $pic = current($output); 

                        $size = getimagesize($dir.$pic); 
                        $height_button = $size[1] + 70; 
                        $value = current($output); 
                        print "\t\t<td width='100' align=center>\n\t\t\t<a class='thickbox' rel='Italie 2007' href='$dir$value';>\n\t\t\t\t<img width='100' height='100' border='0' src='$dir$value'>\n\t\t\t</a>\n\t\t</td>\n\n"; 
                        next($output); 
                } 
                else 
                { 
                        print "\t\t<td width='100' height='100' align='center'>&nbsp;</td>\n"; 
                } 
        } 
        print "\t</tr>\n"; 
} 

//prev en next knopjes maken. 
$ref = $_SERVER['PHP_SELF']; 
print "</table>\n"; 

        if($num_pages == '0') 
        { 
                print "<span>[ </span>"; 
                print "vorige"; 
                print "<span> ] </span>"; 

                print "<span> [ </span>"; 
                print "volgende"; 
                print "<span> ]</span>"; 
        } 
        elseif(($page == '0')||($page == '')) 
        { 
                // geen previous knopje, begin pagina index.php?page=0 
                $next = $page + 1; 

                print "<span>[ </span>"; 
                print "vorige"; 
                print "<span> ] </span>"; 

                $page_link = 1; 

                for($k=0;$k<$pages;$k++) 
                { 
                        if($k == $page) 
                        { 
                                print "$page_link&nbsp;"; 
                        } 
                        else 
                        { 
                                print "<a href='$ref?page=$k'>$page_link</a>&nbsp;"; 
                        } 
                        $page_link++; 
                } 

                print "<span> [ </span>"; 
                print "<a href='$ref?page=$next'>volgende</a>"; 
                print "<span> ]</span>"; 
        } 

        elseif($page == $num_pages) 
        { 
                // geen next knopje, $pages = maximum 
                $prev = $page - 1; 

                print "<span>[ </span>"; 
                print "<a href='$ref?page=$prev'>vorige</a>"; 
                print "<span> ] </span>"; 

                $page_link = 1; 

                for($k=0;$k<$pages;$k++) 
                { 
                        if($k == $page) 
                        { 
                                print "$page_link&nbsp;"; 
                        } 
                        else 
                        { 
                                print "<a href='$ref?page=$k'>$page_link</a>&nbsp;"; 
                        } 
                        $page_link++; 
                } 

                print "<span> [ </span>"; 
                print "volgende"; 
                print "<span> ]</span>"; 
        } 

        else 
        { 
                // de rest, pagina's in het midden, 2 knopjes 
                $next = $page + 1; 
                $prev = $page - 1; 

                print "<span>[ </span>"; 
                print "<a href='$ref?page=$prev'>vorige</a>"; 
                print "<span> ] </span>"; 

                $page_link = 1; 

                for($k=0;$k<$pages;$k++) 
                { 
                        if($k == $page) 
                        { 
                                print "$page_link&nbsp;"; 
                        } 
                        else 
                        { 
                                print "<a href='$ref?page=$k'>$page_link</a>&nbsp;"; 
                        } 
                        $page_link++; 
                } 

                print "<span> [ </span>"; 
                print "<a href='$ref?page=$next'>volgende</a>"; 
                print "<span> ]</span>"; 
        } 

//pagina nummer afbeelden neerkwakken 
print "<br><br>"; 
print "Pagina: $showpage van $pages"; 
?>  

</center> 

</body> 
</html>

dat is de hele code :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan