Avatar billede gsa Nybegynder
23. december 2013 - 08:25 Der er 2 kommentarer og
1 løsning

sideindeksering af elementer

Hejsa alle eksperter. Jeg har lavet følgende php script:

<?php
$item = $_POST['item'];

echo "Browsing ". $item . " textures." . ".<br /><br />Right click and select <b>Save as..</b> to save the textures localy.<br /><br />";

$files = glob("Textures/".$item."/*.*");

for ($i=0; $i<count($files); $i++)
    {
    ?>
    <table border="1" cellpadding="10"><tr><td>
    <?php
    $image = $files[$i];
    echo '<a href="tile.php?item='.$image.'" target="_blank"><center><b>View this texture tiled.</b></center></a><br />';
    //print $image ."<br />";
    echo ' <img src="'.$image .'" alt="Random image" />'."<br />";
    ?>
    </td></tr></table>
    <?php
    }
?>

Det hele virker sådan set som det skal, men problemet er at jeg i nogle af mine biblioteker har frygtelig mange textures og at siderne derfor tager lang tid at loade. Jeg har googlet diverse sideindekseringsscripts og prøvet at implememntere dem i mit script - men uden success :-( .... er der et kvikt hoved der kan bygge en funktion ind i mit script der f.eks. viser texturene 25 ad gangen pa siden, og så med link til side 1,2,3,4...... osv.??
Avatar billede repox Seniormester
23. december 2013 - 11:09 #1
Prøv lige noget ala dette:

<?php
$item = $_POST['item'];
$start = (isset($_POST['start'])) ? $_POST['start'] - 1 : 0;
$page_limit = 25;

echo "Browsing ". $item . " textures." . ".<br /><br />Right click and select <b>Save as..</b> to save the textures localy.<br /><br />";

$files = glob("Textures/".$item."/*.*");
$no_files = count($files);

$pages = ceil($no_files / $page_limit);

for ($i=($start * $page_limit); $i<($start * $page_limit) + $page_limit; $i++)
    {
        if(!isset($files[$i]))
            break;
    ?>
    <table border="1" cellpadding="10"><tr><td>
    <?php
    $image = $files[$i];
    echo '<a href="tile.php?item='.$image.'" target="_blank"><center><b>View this texture tiled.</b></center></a><br />';
    //print $image ."<br />";
    echo ' <img src="'.$image .'" alt="Random image" />'."<br />";
    ?>
    </td></tr></table>
    <?php
    }
?>

<form action="" method="post">
<input type="hidden" name="item" value="<?php echo $_POST['item'] ?>">
<?php for($i = 1; $i <= $pages; $i++): ?>
<button type="submit" name="start" value="<?php echo $i; ?>">Page <?php echo $i; ?></button>
<?php endfor; ?>
</form>


Det er lidt uheldigt at du vil paginere i et POSTet resultat, hvorfor pagineringen vil kræve det samme.
Avatar billede gsa Nybegynder
23. december 2013 - 13:01 #2
@repox: Det er jo super! Lige hvad jeg selv havde prøvet at skrue sammen.... mange tak!!

skriv lige et svar så jeg kan få uddelt point :-)
Avatar billede repox Seniormester
23. december 2013 - 13:14 #3
Det fik du her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester