Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60

    Problema Dichiarazione Globale variabili javascript php

    Sera a tutti mi scuso per la banalità del mio problema ma probabilmente sbaglio concettualmente
    ho trovato questa spiegazione:
    Dove dichiarare le variabili? Dipende dall'utilizzo e dalla distinzione che c'è tra variabili globali e variabili locali. La distinzione non è poca cosa, anzi è alla base della programmazione orientata agli oggetti:

    1. le variabili globali hanno valore per tutto il documento HTML e vanno dichiarate all'inizio dello script e fuori da ogni funzione: il posto preferibile è nei tag <SCRIPT> della sezione <HEAD> in modo tale da creare i contenitori dei valori prima di ogni loro utilizzo;
    2. le variabili locali hanno valore solo all'interno della funzione in cui sono dichiarate, cioè all'interno del blocco di codice compreso tra function(){ e la chiusura della parentesi } e vanno dichiarate entro questi blocchi.
    e questo è il mio problema:
    Codice PHP:
    <script language="JavaScript">
    var 
    visualizzato false;
    function 
    mostra(visualizzato){

    if (
    visualizzato==true)  {
        
    alert("nascondo");
        
    document.getElementById('testo').style.display='none';
        
    alert(visualizzato);
        
    visualizzato=false;
        
    alert(visualizzato); 
        }
    else {
    alert("mostro");
       
    document.getElementById('testo').style.display='';
       
    alert(visualizzato);
       
    visualizzato=true;
       
    alert(visualizzato);


    }

    </script>

    <style type="text/css">
    .Stile1 {
        color: #FF00CC;
        font-style: italic;
        font-weight: bold;
    }
    .Stile2 {
        color: #0033FF;
        font-family: "Monotype Corsiva";
        font-size:15px;
        font-weight: bold;
    }
    </style>
      

    [url="#"]<u>Suggerimento </u>[/url]</p>

    <div id="testo" style="display: none;border: 1px solid;" class="Stile1">
    Attendi un paio di secondi per visualizzare l'immagine nascosta</div>
    <hr /> 
    (ho lasciato gli alert per vedere se sbagliavo l'assegnazione della variabile ma a quanto pare non è li il problema)

    non riesco a capire come fare per cambiare il valore di "visualizzato" da false a true e viceversa una volta avvenuto il cambio di valore dell'attributo.
    (a quanto pare io faccio una dichiarazione all'interno dell'if solo locale...infatti al secondo click mi viene detto che visualizzato=false [dovrebbe essere invece true])

    mi scuso ancora per il disturbo, Grazie anticipatamente per la disponibilità

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Beh, e' evidente che non hai letto con attenzione nemmeno il testo che hai quotato, non parlando di fare una semplice ricerca.
    Detto questo - ma php cosa c'entra?

  3. #3
    Sposto in Javascript
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  4. #4
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60
    chiedo ancora scusa io avevo già provato cosi :
    Codice PHP:
    <script language="JavaScript">
    var 
    visualizzato false;
    function 
    mostra(visualizzato){

    if (
    visualizzato==true)  {
        
        
    document.getElementById('testo').style.display='none';
        var 
    visualizzato=false
        }
    else {

       
    document.getElementById('testo').style.display='';
     var  
    visualizzato=true;



    }

    </script>

    <style type="text/css">
    .Stile1 {
        color: #FF00CC;
        font-style: italic;
        font-weight: bold;
    }
    .Stile2 {
        color: #0033FF;
        font-family: "Monotype Corsiva";
        font-size:15px;
        font-weight: bold;
    }
    </style>
      

    [url="#"]<u>Suggerimento </u>[/url]</p>

    <div id="testo" style="display: none;border: 1px solid;" class="Stile1">
    Attendi un paio di secondi per visualizzare l'immagine nascosta</div>
    <hr /> 
    <--(riferito a bubi1)lo dice anche il tuo "semplice" cerca e già l'avevo provato ma non funge

  5. #5
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60
    niente non riesco proprio a capire non ci arrivo!!

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    quando controlli il valore della variabile devi controllare quella dichiarata esternamente alla funzione
    'var' invece ridefinisce lo scope della variabile ed è questa che stai cambiando invece di quella globale

    quindi
    togli 'var' all'interno della funzione

    probabilmente ti sfugge il fatto che una volta che la funzione ha terminato la sua esecuzione, ogni variabile al suo interno viene distrutta. Ogni volta che chiami quella funzione attualmente crei una variabile dopo l'if ma tu il controllo lo fai sulla variabile globale (che non stai modificando)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60
    la prima volta l'avevo messo senza var ma non funge ugualmente..pietà

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    document.getElementById('testo').style.display='';

    dev'essere
    document.getElementById('testo').style.display='bl ock';
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  9. #9
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60
    purtroppo non è quello i problema... ho provato a cambiarlo ma non è questione di attributo degli stili.. è la variabile nell'if che non riesco a fargli cambiare il valore una volta uscita dalla function...

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    riposta la funzione così com'è ora dopo le modifiche che ti ho suggerito
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.