Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606

    Gestione directory tramite javascript + html

    Come da titolo, sto creando un sistema che visualizzi una cartella, tipo le cartelle di windows per capirci, in cui vengono mostrate le directory correnti.
    Cliccando su una cartella si ottiene il browsing tra le directory.
    Ho creato un file php che legge la directory richiesta alla ricerca di ulteriori cartelle e restituisce una stringa json con l'elenco di ciò che trova, e fino a qui nessun problema.

    Ecco la parte di script javascript che realizza poi di fatto la parte visuale del tutto:
    codice:
    var directoryIniziale = '../foto/',
    directoryCorrente = directoryIniziale;
    /**
    		*	Si muove tra le directory
    		*/
    		function muoviDir(id) {
    			var o = new assegnaXMLHttpRequest();
    			if (id == 'inizio')
    				directoryCorrente = directoryIniziale;
    			else {
    				directoryCorrente = document.getElementById(id).text;
    			}
    			document.getElementById('cartellaCorrente').innerHTML = 'Cartella: ' + directoryIniziale + directoryCorrente;
    			
    			alert('cartella: ' + document.getElementById(id).text);
    			
    			o.open("post", "getDir.php", true);
    			o.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    			o.onreadystatechange = function () {
    				if (o.readyState == 4) {											
    					if (o.status == 200) {
    						var ret = JSON.parse(o.responseText),
    							n = ret.length,
    							html = '[*]..';
    						for (var i = 0; i < n; i++) {
    							var text = ret[i].substr(ret[i].lastIndexOf('/')+1);
    							html += '[*]'+text+'';
    						}
    						document.getElementById('cartellePresenti').innerHTML = html;
    					}
    				}
    			}
    			var params = "dir=" + directoryCorrente;
    			o.send(params);
    		}	//	muoviDir()
    Ora tutto funziona, ma quando vado a cliccare su una cartella qualsiasi di fatto non accade nulla, mentre firebug mi risponde in console: "TypeError: document.getElementById(...) is null [Interrompi per questo errore] directoryCorrente = document.getElementById(id).text;" ovvero nel'lespressione di controllo che ho aggiunto
    codice:
    alert('cartella: ' + document.getElementById(id).text);
    sembra semplicemente che non trovi l'ID dei vari link creati dinamicamente e inseriti tramite innerHTML.
    E questo è il punto, ovvero: mi conviene creare ogni link tramite il DOM? Oppure c'è qualche cosa che non vedo nella mia funzione e che limita la possibilità di essere richiamata quando faccio click su un link creato dinamicamente?
    Tenete presente che il link altro non è che il riferimento da una directory trovata all'interno del filesystem (server remoto) e facendovi click sopra serve a navigarlo.
    Dove toppo?

    Grazie in anticipo per le risposte, so che non è ancora perfetta.

    M.

  2. #2
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Niente?
    Tranquilli ho risolto da solo
    In pratica, stravolgendo tutto quello che avevo fatto, ho creata una funzione che crea, mediante il DOM e non innerHTML i link che mostrano le directory.
    Questa funzione è richiamata da un ciclo che prende la stringa JSON passata dal server, la cicla e ad ogni valore richiama la suddetta funzione che appende i nuovi valori a quelli già passati.
    Funge

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.