• User Attivo

    Leggere contenuti di una cortella usando soo javascript/jquery

    Salve a tutti voi, è da un po' che non entravo qui dentro 🙂

    Arriviamo subito al problema: sto costruendo un sito e in un file .js ho un'array vuoto. Ho bisogno, dandogli il percorso di una cartella, che vada a leggere tutti i file al suo interno e che inserisca il nome di ognuno di loro come elemento dell'array.
    È possibile farlo senza AJAX? È possibile usare codice PHP in un file .js? (Non credo, ma una cosa del genere l'avevo già fatta in PHP).

    Grazie a tutti in anticipo!
    -meis

    EDIT: solo dopo l'invio mi sono accorto degli errori di battitura. Correggo quelli qui, ma quelli del titolo sono rimasti, scusate 🙂


  • User Attivo

    Ciao meis,

    inizio col chiarirti un po' le idee. AJAX sta per Asynchronous Javascript And XML, non è un linguaggio diverso.
    Considera che quando si tratta di far fare qualcosa al Javascript, significa farlo fare al client, quindi al browser. Se tu hai un sito miosito.com e la tua cartella è miosito.com/cartella/, questa cartella ha permessi di lettura pubblici? Il webserver che la ospita (Apache, ngix, ...) è configurato per consentirle il directory listing?
    Se queste basi ci sono, non ti servono tecniche specifiche per leggere le cartelle, ti serve semplicemente di caricare il sorgente restituitoti chiamando miosito.com/cartella. Ogni A HREF che vedi, è un file contenuto in quella cartella. Sappi in ogni caso che dal momento in cui rendi pubblica quella cartella al Javascript, la rendi pubblica a chiunque, quindi qualsiasi utente inserisca nel proprio browser miosito.com/cartella/ potrà vederne (e scaricarne) il contenuto.


  • User Attivo

    Ciao Francesco,

    Grazie per la risposta. I permessi della cartella sono 777. Non credo che sia configurata per il directory listing, visto che se vado con il browser su miosito.com/cartella/ mi da un errore 403. C'è un modo per renderla leggibile?
    Mi è venuta in mente un'altra cosa. Se in questa cartella creassi io stesso un file che tramite PHP lista tutti i file eccetto sè stesso presenti in quella cartella, e prendessi lui stesso come sorgente, potrei avere tutti i collegamenti che sto cercando dinamicamente. È corretto il mio ragionamento?


  • User Attivo

    EDIT: ci sono riuscito come ho scritto sopra, ma se avete dei consigli migliori... scrivete pure!

    
    $(document).ready(function(){
        $("#foto > div").load('slideshow.php', function() {
            numerofoto();
        }); //questo mi carica i tag <img />
        
        function numerofoto() {
            var foto = $("#foto > div > img").length; //trovo numero totale degli img
            
            $("#foto > div img").animate({opacity: 0}, 0).hide("fast");
            $("#foto > div img:first-child").show("slow").animate({opacity: 1}, 1000); // con queste due righe nascondo le altre e faccio vedere la prima
            
            var n = 1;
            setInterval(function() {
                n += 1;
                if(n > foto)
                {
                    n = 1;
                }
                $("#foto > div img").animate({opacity: 0}, 1000).hide("fast");
                $("#foto > div img:nth-child("+n+")").show("slow").animate({opacity: 1}, 1000);
            }, 2500); // con questa funzione ogni 2500 secondi una si nasconde e l'altra si vede
        }
    });
    
    

    Quello che sto cercando di fare adesso è rendere più "fluida" la transizione. Ovvero, come si presenta adesso (muovilanotte.com) prima finisce di nascondere un'immagine e poi fa vedere l'altra. Quello che vorrei riuscire a fare è modificare contemporaneamente le opacity senza però far sì che le immagini vadano una in basso e una in alto l'altra, devono essere nello stesso punto ma a due livelli diversi. Si può fare? Grazie!