Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    Modificare Galleria: funzioni javascript?

    In rete si trovano mille photo-gallery in javascript molto interessanti, ma tutte hanno quello che per i miei scopi è un gran limite:
    la necessità di specificare nel codice i nomi dei file o quanto meno la radice del nome file (tipo image) cu iil codice aggiunge una numerazione progressiva (image01 image02 ecc).

    Non essendo affatto pratico di javascript, chiedo a voi più esperti:
    Quale codice va scritto affinchè il javascript cerchi da solo tutte le foto (file .jpg) contenute in una data cartella?

    Grazie anticipatamente.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il fatto che tutte queste photo-gallery si comportino cosi' dovrebbe farti pensare che non sia affatto semplice farlo in javascript

    javascript non e' in grado di scorrere il contenuto di una cartella,
    puoi farlo con un linguaggio lato server

    esiste un' alternativa tirata un po' per i capelli,
    quindi valuta prima se puoi usare php/asp per scrivere l' array di immagini per la galleria

  3. #3
    Per me andrebbe benissimo farlo in php, potreste suggerirmi il codice che crea e passa l'array al javascript?

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    http://php.html.it/articoli/leggi/86...ies-con-php/4/

    al posto di far scrivere i nomi di documenti, farai scrivere da php i percorsi a queste immagini riempiendo un array
    Codice PHP:
    <script type="text/JavaScript">
    /*<![CDATA[*/
    var arrImgs=new Array();
    <?php
    // percorso della directory da leggere
    $directory "img/pages";
    // instanziamo l'oggetto e apriamo la directory
    $d dir($directory);
    $num=0;
    // impostiamo un ciclo while() per scorrere tutto il contenuto
    while ($read $d->read()) {
        
    // escludiamo . e ..
        
    if($read != "." && $read != "..") {
            
    // se secondo l' estensione e' un' immagine
            
    if(preg_match('/.(jpg|jpeg|gif|png)$/',$read)){
                
    // scrivi un nuovo elemento dell' array javascript, per esempio:
                
    echo "arrImgs[$num]=new Image();\n";
                echo 
    "arrImgs[$num].src=\"$directory/$read\";\n";
                
    $num++;
            }
        }
    }

    // chiudiamo la directory
    $d->close();
    ?>
    /*]]>*/
    </script>
    ciao

  5. #5
    Oh perfetto grazie mille.
    In tal modo creo l'array (ad esempio) arrImgs[].

    Ora come lo invio al javascript?
    Considera che il file .js è ovviamente esterno alla pagina in cui metto il codice php che mi hai scritto e che no nè predisposto alla ricezione dell'array come parametro. Come devo quindi modificare il file javascript e cosa devo aggiungere nel php per inviare l'array?

    Ti ringrazio della disponibilità. Immagino che questa discussione possa essere di aiuto a molti.

  6. #6
    Originariamente inviato da scrabionau77
    Oh perfetto grazie mille.
    In tal modo creo l'array (ad esempio) arrImgs[].

    Ora come lo invio al javascript?
    Considera che il file .js è ovviamente esterno alla pagina in cui metto il codice php che mi hai scritto e che no nè predisposto alla ricezione dell'array come parametro. Come devo quindi modificare il file javascript e cosa devo aggiungere nel php per inviare l'array?

    Ti ringrazio della disponibilità. Immagino che questa discussione possa essere di aiuto a molti.

    Tutto il necessario è nel codice che ha
    postato Xinod basta fare un copia e incolla


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    per eseguire php in un file .js l' estensione del file esterno deve diventare .php e il server deve fornire header opportuni per il file.php
    Codice PHP:
    <? Header("content-type: application/x-javascript");
    # resto dello script, rispettando nel file prodotto la sintassi javascript
    ?>
    per caso ho trovato questo,
    http://www.javascriptkit.com/javatut...ernalphp.shtml
    che probabilmente spiega meglio di come ho fatto io,
    tra l' altro trattando nella pagina successiva il problema originario della discussione

    ciao, buon proseguimento

  8. #8
    Mi sfugge qualcosa...
    Ho 2 tipi di galleria fotografica, una è questa e sta tutta in un file html:

    [PHP<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it">
    <head>

    <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="it" />
    <meta name="Robots" content="All" />
    <meta name="Description" content="HTML.it - il sito italiano sul Web publishing" />
    <meta name="Keywords" content="Lo script permette di realizzare una galleria di immagini con effetto "crossfade". Il passaggio da un'immagine all'altra avverrà, infatti, con un effetto dissolvenza gestibile nella durata. Lo script è compatibile sia con Explorer che con altri browser ma il "crossfade" sarà visibile solo con il software di casa Microsoft. In ultimo è importante notare che, per una migliore riuscita dell'effetto, le immagini dovrebbero avere tutte la stessa grandezza." />
    <meta name="Owner" content="HTML.it srl" />
    <meta name="Author" content="HTML.it srl" />
    <meta name="Copyright" content="HTML.it srl" />

    <script type="text/javascript" language="JavaScript">
    <!--
    var slideShowSpeed = 2000

    var crossFadeDuration = 3

    var Pic = new Array()

    Pic[0] = '01.gif'
    Pic[1] = '02.gif'
    Pic[2] = '03.gif'

    var t
    var j = 0
    var p = Pic.length

    var preLoad = new Array()
    for (i = 0; i < p; i++){
    preLoad[i] = new Image()
    preLoad[i].src = Pic[i]
    }

    function runSlideShow(){
    if (document.all){
    document.images.SlideShow.style.filter="blendTrans (duration=2)"
    document.images.SlideShow.style.filter="blendTrans (duration=crossFadeDuration)"
    document.images.SlideShow.filters.blendTrans.Apply ()
    }
    document.images.SlideShow.src = preLoad[j].src
    if (document.all){
    document.images.SlideShow.filters.blendTrans.Play( )
    }
    j = j + 1
    if (j > (p-1)) j=0
    t = setTimeout('runSlideShow()', slideShowSpeed)
    }

    //-->
    </script>

    </head>
    <body onload="runSlideShow()">



    <div align="center">


    <table border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td id="VU" height=100 width=100>
    [img]01.gif[/img]</td>
    </tr>
    </table>


    </div>







    <div align="center">
    [img]logo_htmlit.gif[/img]
    </div>


    </body>
    </html>[/PHP]

    Un'altra è invece questa, costituita da 2 file:

    photogallery.js :
    Codice PHP:
      /* elementi variabili */
      
    ncol=5;
      
    // numero colonne;
      
    nfoto=10;
      
    // numero foto;
      
    folder="image/";
      
    //cartella in cui sono contenute le immagini
      
    prefisso="image";
      
    // elemento costante delle foto (image1.jpg,image2.jpg => image)
      
    suf_big="_big";
      
    // suffisso per le foto grandi
      
    suf_small="";
      
    // suffisso per le foto piccole
      
    ext=".jpg";
      
    // estensione foto
      /* fine elementi variabili */

    function photo_grande(){
      
    document.write("<img src=\""+folder+prefisso+"0"+suf_big+ext+"\" name=\"grande\" border=\"0\">");
    }
    function 
    photo_gallery(){
      
    document.write("<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\">");
      for (
    i=1;i<=nfoto;i++){
      if (
    i%ncol==1document.write("<tr>");
      
    document.write("<td><a href=\"#a\" onclick=\"document.grande.src='"+folder+prefisso+(i-1)+suf_big+ext+"'\">");
      
    document.write("<img src=\""+folder+prefisso+(i-1)+suf_small+ext+"\" border=\"0\"></a></td>");
      if (
    i%ncol==0document.write("</tr>");
      }
      
    document.write("</table>");

    e index.php

    Codice PHP:
    <html>
    <head>
        <title>Moto GP 2006 - Screenshot</title>
    <script type="text/javascript" src="photogallery.js"></script>
    </head>
    <body>


    <script type="text/javascript">photo_grande();</script>
    <script type="text/javascript">photo_gallery();</script>

    </body>
    </html>
    <?php
    // codice php
    ?>
    Ebbene, ciò che non capisco (nonostante varie prove non mi funziona) è dove devo mettere il codice di creazione array che mi avete suggerito. Un esempio pratico chiarirebbe ogni dubbio!
    Grazie per la vostra disponibilità.

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    nella prima php deve scrivere questo

    Pic[0] = '01.gif'
    Pic[1] = '02.gif'
    Pic[2] = '03.gif'



    nella seconda e' parecchio incasinato, devi stravolgere abbastanza lo script

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    nella seconda non ha senso scrivere la tabella con javascript,
    ottieni solo di non vedere nulla con javascript disabilitato e che per i motori non c'e' nulla nella pagina,
    fai scrivere la tabella da php

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.