6 berichten aan het bekijken - 1 tot 6 (van in totaal 6)
  • Q:
    Bijdrager
    Rttgfde

    [JS] onclick volgende afbeelding uit array

    Voor de website van een client moet ik een soort van systeem schrijven wat een bepaalde map uitleest, daar de bestanden uit haalt die de naam van de pagina in zich hebben. (bijvoorbeeld op een pagina over boten selecteert ‘ie alle foto’s met boot in de naam).

    In principe is dat al gelukt dmv PHP, ik kan de foto’s ook wel in een array in javascript inladen, maar hoe krijg ik het voor elkaar dat elke keer wanneer je op de foto klikt dat’ ie switched naar de volgende foto uit de array, totdat ‘ie bij de laatste is, dan gaat ‘ie weer naar de eerste foto. Het aantal foto’s per pagina kan variabel zijn.

    bvd

    edit:

    <script type=”text/javascript”>
    var myImages=new Image();
    <?php

    //$p = $_GET[“p”];
    $p = “bla”;

    $handle=opendir(‘img’);
    $i=0;
    while (false!==($file = readdir($handle))) {
    if ($file != “.” && $file != “..” && eregi($p,$file) ) {
    echo “myImages[“.$i.”] = \”img/$file\”;nn”;
    $i++;
    };
    };
    closedir($handle);

    ?>
    function changeImg() {
    if (document.images[1]){
    document.images[1].src = myImages[2];
    }
    else if (document.images[0]){
    document.images[0].src = myImages[1];
    }
    }
    // –>
    </script>
    <a href=”#”><img src=”https://www.onemorething.nl/wp-content/themes/onemorething/external-image.php?src=img/bla1.&ext=jpg&h=e2d89b19652088bc5e1f49ee473715bf&t=1606981436&#8243; name=”bla1″ width=”300″ height=”150″ onClick=”changeImg();return false;” ></a>

    dat doet ongeveer wat ik wil, maar werkt alleen van foto1 naar foto2, hij moet dus automatisch het volgende auto uit de array pakken en bij de laatste weer naar de eerste gaan, iemand?

    Bijdrager
    computer space

    Is het handig om alle sleutelwoorden in de bestandnaam te stoppen?
    Wanneer je parallel een database hebt kun je met zo’n soort commando makkelijk door de zoekresultaten fietsen:
    [code:1:860cfcb34c]if (mysql_num_rows($zoekarray) > 0)
    {
    while ($row = mysql_fetch_array($zoekarray))[/code:1:860cfcb34c]

    Bijdrager
    hansenonline

    of dat je het uit een xml bestand laat uitlezen als je geen database hebt. op de website waar ik nu mee bezig ben heb ik van internet een script gedownload(weet niet meer waarvandaan) dat gebruik maakt van een tekst bestand waar de volgorde van de plaatjes en de titel in staat. met een php script dat het bestand uit leest en een 1++ functie gebruikt om van foto1 naar foto2 etc te gaan. ik ben zelf geen programmeur, maar kan wel de dingen aanpassen zodat het doet wat ik wil (evt met hulp van een vriend die dat wel is)

    Bijdrager
    Rttgfde

    bedankt voor het meedenken, maar op deze manier ben ik wel tevreden met de php, ik zou liever een oplossing krijgen voor het javascript gedeelte.

    Bijdrager
    iJoost

    Nou ehm…

    Declareer een globale variabele. Zet die op nul. Bij elke klik hoog je ‘m op. Kijk nog even of ie misschien gelijk aan de lengte van de array geworden is en zet ‘m in dat geval weer op nul. Gebruik tot slot die variabele om de url van het plaatje uit de array te vissen en het plaatje op het scherm te zetten.

    Maar dat had je toch zelf ook wel kunnen verzinnen?

    Bijdrager
    Rttgfde

    blijkbaar in de eerste instantie niet anders had ik’t niet gevraagd he.
    anyways, het is nu wel gelukt dus dit topic mag gesloten worden:

    (mijn) oplossing voor de geïnteresseerden:

    <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN”
    http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”&gt;
    <html>

    <head>
    <title>Blaat</title>
    <?

    $p = $_GET[“p”];

    $handle=opendir(‘img/’);

    while (false!==($file = readdir($handle))) {
    if ($file != “.” && $file != “..”) {
    if (eregi($p,$file)){
    $img[]= $file;
    };
    };
    };
    closedir($handle);

    print “n <script type=\”text/javascript\”>
    var i=1;
    function changeImage(){
    var images=new Array(“;
    foreach($img as $val){
    print “\”$val\””;
    if ($val != “”.$p.””.count($img).”.jpg”){
    print “,”;
    };
    };
    print “);”;
    print ”
    if ( images.length != 1 ) {
    document.getElementById(\”img\”).src = ‘img/’+images;
    i=i+1;
    if(i==images.length){i=0;};
    } else {
    document.getElementById(\”img\”).style.cursor = ‘default’;
    };
    “;

    print “n };n </script>nn”;

    ?>
    </head>

    <body>

    <a href=”#” onclick=”changeImage(); return false;”><img id=”img” width=”100px” src=”img/<? print “”.$p.”1″;?>.jpg” alt=”img1″ /></a>

    </body>

    </html>

6 berichten aan het bekijken - 1 tot 6 (van in totaal 6)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.