Salve a tutti.
Innanzitutto mi scuso con chi interpreterà male il mio titolo ma non mi viene in mente altro per descrivere il mio problema.. poiche comunque è un grosso problema.
vi spiego subito.. ho dei passaggi di variabile che non escono fuori...
per maggior chiarezza vi posto il codice e man mano spiego che fa e che vorrei che facesse.
partiamo dall'html:
nell'html ho la mia barra delle schede da cui richiamo le funzioni js per cambiare il wrapper.codice:<body> <ul id="tab-bar"> <li id="tab-home"> <a href="#index"> Home </a> <li id="tab-filemanager"> <a href="javascript:file();"> File Manager </a> <li id="tab-video"> <a href="javascript:video();" > Video </a> [/list] <div class="wrapper"> <div id="index"> pagina index </div>
vi posto il javascript di File Manager.
questa funzione richiama il php per avere i dati da appendere alla pagina, precisamente al wrapper.codice:function file(directory) { $(".wrapper").remove(); $('<div class="wrapper"></div>').appendTo("body"); $('<div id="file"></div>').appendTo(".wrapper"); $.get("php/file_manager.php",{"dir" : directory}, function(saf) { $("#file").html(saf); }); }
arriviamo al fulcro del problema, ovvero il file php.
ecco il codice:
Qui in pratica uso il classico script di lettura del file system, con la restituzione al js delle righe in html e con una piccola modifica. in pratica se il file trovato è un file vero collega direttamente al file, altrimenti se questo è una cartella, manda il risultato al js, che appendera le righe e avrà come collegamento la stessa funzione di prima, ovvero file(directory) ma richiamata con la directory aggiornata alla sottodirecory corrente.codice:<?php include("../inc/db.php"); $directory=$_GET["dir"]; if ($_GET["dir"]=="") { $directory="../documenti/"; } if (is_dir($directory)) { if ($directory_handle = opendir($directory)) { while (($file = readdir($directory_handle)) !== false) { if(is_dir($directory.$file)){ if(($file!=".")&($file!="..")&($file!=".DS_Store")){ print "<ul id='home-list' class='table-view table-action'>[*] <script> dir=' ".$directory.$file." '; </script> <a href='javascript:file(dir);'> <h2>".$file."</h2> </a> [/list]"; } } else { if(($file!=".")&($file!="..")&($file!=".DS_Store")) { print '<ul id="home-list" class="table-view table-action"> <li class="even"> <a href="'.$directory.$file.'"> <h2>'.$file.'</h2> </a> [/list]'; } }}} closedir($directory_handle); } ?>
So che il mio italiano non è preciso, ma spero mi abbiate capito!
Cio che, purtroppo, mi restituisce, è il collegamento all'ultima sottodirectory analizzata.
Allora ho provato con un array:
nel codice php di prima, dove ho evidenziato in grassetto, ho sostituito quelle righe con queste
se inserisco un alert(dir[i]) mi restituisce la directory effettiva. Purtroppo però alla chiusura del php quell'array non esiste più, dunque tutti i collegamenti a file(dir) sono persi.codice:<script> var i=0; var dir= new Array(); dir[i]='".$directory.$file."';</script> <a href='javascript:file(dir[i]);'> <script>i++;</script>
Spero mi abbiate capito e che riusciate ad aiutarmi.
Questo è l'ultimo sforzo della mia tesi di laurea.
Grazie mille a tutti

Rispondi quotando