Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
Variabile superglobale php
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet
Precedente :: Successivo  
Autore Messaggio
Smjert
Dio maturo
Dio maturo


Registrato: 01/04/06 18:19
Messaggi: 1619
Residenza: Perso nella rete

MessaggioInviato: 02 Lug 2009 10:31    Oggetto: Variabile superglobale php Rispondi citando

Mi servirebbe avere una variabile che posso leggere e impostare in qualunque file php (in realtà in 2 file), il problema è che il primo file contiene una chiamata ajax al secondo, e il secondo dovrebbe restituire solamente del codice javascript che deve essere eseguito (con eval()).

Ho provato a pensare a come usare $GET e $POST, solo che il secondo file dovrebbe includere come risposta, oltre che al codice js, anche il nuovo valore della variabile e il primo file dovrebbe parsare il testo rimuovendo il nuovo valore della variabile, per poi eseguire il codice js.
Ho pensato a come usare anche $SESSION, ma usando session_start() sul secondo file la risposta alla richiesta ajax contiene della "sporcizia" (pezzi in html) che anche qui dovrei rimuovere...
Terza soluzione potrebbe essere quella di memorizzare la variabile nel db MySql.. solo che fare una query ogni volta... boh..


Sbaglio io qualcosa? C'è un modo più "semplice" per avere questo tipo di variabile?
Top
Profilo Invia messaggio privato HomePage
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 02 Lug 2009 10:58    Oggetto: Re: Variabile superglobale php Rispondi citando

non è chiaro l'uso che devi fare di questa variabile, e se questa sia relativa ad una impostazione del sistema (e quindi valida per tutti) o se sia specifica dell'utente...

nel primo caso un valore in una bella tabellina config sul DB, nel secondo una variabile di sessione.

Ciao
Top
Profilo Invia messaggio privato HomePage
Smjert
Dio maturo
Dio maturo


Registrato: 01/04/06 18:19
Messaggi: 1619
Residenza: Perso nella rete

MessaggioInviato: 02 Lug 2009 11:21    Oggetto: Rispondi citando

Provo a spiegare cosa sto facendo.
In pratica io ho una google maps caricata dal primo file php il quale cattura (via js) l'evento "zoomend" (cioè quando viene cambiato lo zoom).
In questo evento viene fatta una richiesta XHR al secondo file php, che carica dei dati dal db MySql e in base a quelli mi fa un echo di codice js che deve essere poi eseguito dal primo file php, in modo che mi aggiunga delle icone sulla google map.
La richiesta al secondo file php la lancio all'evento zoom perchè devo controllare il nuovo zoom... se ho un certo zoom devo mostrare le icone, se no no.. e il controllo dello zoom viene fatto nel secondo file php.
Ora venendo al mio problema.. dato che gli zoom validi per mostrare le icone sono entro un range.. ogni volta che cambio zoom dentro a questo range mi viene aggiunta l'icona (e alla fine ce ne sono più sovrapposte), mentre io voglio che venga aggiunta una volta sola.. quindi ho bisogno di una variabile che dica se le icone sono già mostrate.. ed è una variabile diversa per ogni utente.
Tu mi dici di usare session.. bene ma per usare $SESSION dovrei mettere session_start() nel secondo file php.. il fatto è che poi la richiesta XHR si ritrova non solo del codice js ma anche parti in html... e dovrei (non so ancora bene come) togliergli via quella parte.
è un po' più chiaro?
Top
Profilo Invia messaggio privato HomePage
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 02 Lug 2009 11:32    Oggetto: Rispondi citando

Smjert ha scritto:
è un po' più chiaro?


poco Wink

comunque (se ho capito) puoi mettere un flag nella richiesta (GET o POST) al secondo file php, così che ti generi del JS diverso, eventualmente...
Top
Profilo Invia messaggio privato HomePage
Smjert
Dio maturo
Dio maturo


Registrato: 01/04/06 18:19
Messaggi: 1619
Residenza: Perso nella rete

MessaggioInviato: 02 Lug 2009 11:41    Oggetto: Rispondi citando

Provo a riassumere.. il primo file contiene la mappa google maps e la gestione dei suo eventi (vedi lo zoom), il secondo è un file in php puro che carica dal db MySql le informazioni riguardanti le icone da aggiungere e con un echo restituisce del codice javascript alle richieste ajax del primo file, codice che una volta eseguito aggiunge delle icone sulla mappa.
Ora io ho bisogno che il secondo file restituisca solo del codice js.
Se dovessi usare $GET e $POST, dato che ad ogni richiesta ajax dal primo file dovrei mandare questa flag aggiornata, il secondo file dovrebbe rispondere con il codice js E il nuovo valore di questa flag/variabile e questo nuovo valore dovrei rimuoverlo dal responseText della richiesta ajax.
Non che sia impossibile da fare chiaramente.. ma non c'è proprio altro modo allora?

PS: esempio pratico.
Il primo file php mi carica la google map con zoom 7.
Ogni volta che zoomo parte una richiesta al secondo file che controlla lo zoom (passato via GET), se lo zoom è < 9 allora fai exit e quindi non fare nulla.
Al contrario se lo zoom non è < 9 caricami le informazioni delle icone del database e restituisci con un echo del codice js che deve essere eseguito dal primo file, codice che aggiungerà le icone.
Ora chiaramente qui ho più casi in cui lo zoom può essere non < di 9 quindi il risultato che ho è che mi vengono caricate più volte le icone, una sopra l'altra.. mentre io ho bisogno di sapere se sono state già caricate.
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 02 Lug 2009 12:17    Oggetto: Rispondi citando

Mi riprometto di analizzare meglio la cosa più tardi però, perchè non fai in modo che la pagina "due" ritorni solo i dati e non il codice js da eseguire?
In pratica dal db tiri fuori le info, la pagina "uno" cattura il response xml o json ed esegue il codice a seconda. In questa pagina memorizzi una var js che ti fa da flag.
Dato che questa pagina non si ricarica mai, ottieni che la tua var è sempre aggiornata con il valore corretto.
Top
Profilo Invia messaggio privato
Smjert
Dio maturo
Dio maturo


Registrato: 01/04/06 18:19
Messaggi: 1619
Residenza: Perso nella rete

MessaggioInviato: 02 Lug 2009 12:38    Oggetto: Rispondi citando

freemind ha scritto:
Mi riprometto di analizzare meglio la cosa più tardi però, perchè non fai in modo che la pagina "due" ritorni solo i dati e non il codice js da eseguire?
In pratica dal db tiri fuori le info, la pagina "uno" cattura il response xml o json ed esegue il codice a seconda. In questa pagina memorizzi una var js che ti fa da flag.
Dato che questa pagina non si ricarica mai, ottieni che la tua var è sempre aggiornata con il valore corretto.


Perchè è molto più comodo generare subito il codice js nella stessa pagina dove vengono caricati i dati (e le icone possono essere multiple.. anche 30-40) che passare la risposta e doverla parsare nel primo file per generare il codice js rispettivo.
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 02 Lug 2009 13:02    Oggetto: Rispondi citando

Smjert ha scritto:
freemind ha scritto:
Mi riprometto di analizzare meglio la cosa più tardi però, perchè non fai in modo che la pagina "due" ritorni solo i dati e non il codice js da eseguire?
In pratica dal db tiri fuori le info, la pagina "uno" cattura il response xml o json ed esegue il codice a seconda. In questa pagina memorizzi una var js che ti fa da flag.
Dato che questa pagina non si ricarica mai, ottieni che la tua var è sempre aggiornata con il valore corretto.


Perchè è molto più comodo generare subito il codice js nella stessa pagina dove vengono caricati i dati (e le icone possono essere multiple.. anche 30-40) che passare la risposta e doverla parsare nel primo file per generare il codice js rispettivo.

Ma tu non devi leggere il response e generare codice js, devi usare i dati del response da passare al codice js che parte quando la pagina "due" viene caricata.

Comunque, anche seguendo la tua strategia, lo script ritornato ed eseguito con eval ha accesso alle var della pagina "uno" quindi se fai in modo di settare un flag js definito in "uno" tramite "due" sei a posto.

Poi stasera studio meglio la cosa, ma mi sa tanto che la cosa sia fattibile.
Top
Profilo Invia messaggio privato
Smjert
Dio maturo
Dio maturo


Registrato: 01/04/06 18:19
Messaggi: 1619
Residenza: Perso nella rete

MessaggioInviato: 02 Lug 2009 13:18    Oggetto: Rispondi

Eh ma non è così facile usare i dati con il codice js della pagina 1.. proprio perchè non mi ritorna un set di dati per una icona, ma più dati, per tutte le icone, per questo dico che dovrei poi parsare i dati dalla stringa response.
In pratica io con 1 chiamata carico in un colpo tutti i dati.

Comunque in effetti io pensavo a interrompere la parte php (quindi la richiesta XHR parte ma il php non restituisce i dati), in effetti con js potrei non far proprio partire la richiesta.
Ci provo.
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi