Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    24

    scambio di variabili tra php e javascript

    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:
    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>
    nell'html ho la mia barra delle schede da cui richiamo le funzioni js per cambiare il wrapper.

    vi posto il javascript di File Manager.
    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);
    	});
    	}
    questa funzione richiama il php per avere i dati da appendere alla pagina, precisamente al wrapper.

    arriviamo al fulcro del problema, ovvero il file php.
    ecco il codice:
    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);
                    }
                ?>
    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.

    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
    codice:
    <script> var i=0; var dir= new Array(); dir[i]='".$directory.$file."';</script>
    <a href='javascript:file(dir[i]);'>
    <script>i++;</script>
    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.

    Spero mi abbiate capito e che riusciate ad aiutarmi.
    Questo è l'ultimo sforzo della mia tesi di laurea.

    Grazie mille a tutti
    esistono 10 modi di sapere il binario:
    o lo sai o non lo sai...

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    usa post invece che get
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    24
    probabilmente non mi sono spiegato bene io...

    il problema non sta nel richiamo del php, dunque sia post che get vanno bene....
    il problema sta nel far passare ogni singolo parametro dal php al browser...

    dunque get o post non fanno la differenza...
    esistono 10 modi di sapere il binario:
    o lo sai o non lo sai...

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.