[Javascript] Array da file di testo, con lettura temporizzata senza refresh

paolissimo

Nuovo Utente
4 Gen 2018
16
0
1
Ciao a tutti,
ho sviluppato in Php una pagina che con un refresh di pagina( in javascript) va a leggere un file di testo ogni 15 sec., Il contenuto del testo va a popolare un array da cui estraggo le variabili che mi servono. Fin qui tutto bene ma, se fosse possibile, vorrei evitare il refresh totale per evitare che tutto si resetti. Ho visto che è possibile fare un refresh con jquery che aggiorni un div ma quello che mi serve è poter lavorare con delle variabili, non la semplice visualizzazione del risultato, e non so proprio come ottenerle. Chiedo agli esperti: si può fare? Eventualmente una dritta sarebbe utilissima. Grazie.
 

macus_adi

Utente Attivo
5 Dic 2017
1.028
58
48
IT/SW
Crea un file entry point in php che recupera il contenuto del file in questo modo:
root
-db
--file_di_testo.txt
-index.php
-recupero_dati_aj.php

Questo è il file recupero_dati_aj.php
PHP:
$a=file('db/file_dati.txt');
echo json_encode($a,128);
index.php
Codice:
$(document).ready(function(){
    var intervallo=5000;
    setInterval(function(){
      $.get('/recupero_dati_aj.php',function(data){
           var dati=$.parseJSON(data);
           console.log(dati);
      },intervallo);
    });
}
 

paolissimo

Nuovo Utente
4 Gen 2018
16
0
1
Grazie Macus_adi! Sei molto gentile. La prima parte (il file recupero_dati_aj.php) mi è chiara e funziona,
la seconda mi è teoricamente chiara ma non ho idea di come estrarre la variabile in php... perdona l'ignoranza, cerco di imparare giorno per giorno.
 

macus_adi

Utente Attivo
5 Dic 2017
1.028
58
48
IT/SW
mettiamo il caso tu abbia nel file le informazioni salvate così:
Testo uno
Testo due
Testo tre
..... etc....
$a=file('db/file_dati.txt');
echo
json_encode($a,128);
Questo non fa altro che assegnare alla variabile $a l'array risultato delle righe del file, quindi:
$a=['Testo uno','Testo due'.........];
Viene codificato in json per passarlo a jQuery.
var dati=$.parseJSON(data); console.log(dati);
Questa parte decodifica la stringa e la parsa, quindi per accedere ai dati o stamparli hai esattamente l'array $a, in sostanza, potresti appendere il risultato con un ciclo for.

Codice:
for(var i in data){
    $('#selettore').append(data[i]);
}
//i=0;
//data[i] contiene esattamente Testo uno