+ Rispondi alla Discussione
Risultati da 1 a 3 di 3

Rendere visibile variabile di un costrutto if in un altro costrutto if

Ultimo Messaggio di Dario_B il:
  1. #1
    User
    Data Registrazione
    Dec 2015
    Località
    roma
    Messaggi
    68

    Rendere visibile variabile di un costrutto if in un altro costrutto if

    Ciao a tutti.
    Secondo voi come posso rendere visibile una variabile contenuta dentro un costrutto if in un altro costrutto if?
    Ipotizziamo, ad esempio di avere questo banalissimo codice:
    Codice PHP:
    <html>
        <head>
        </head>
        <body>
            <form method="post">
                <input type="submit" name="ok1" value="Clicca qui" /><br /><br />
                <input type="submit" name="ok2" value="stampa" /><br /><br />
                <input type="text" name="valore1" />
            </form>
            <?php
                
    if (isset ($_POST['ok1']))
                {
                    
    $aaa $_POST['valore1'];
                }
                if (isset (
    $_POST['ok2']))
                {
                    echo 
    $aaa;
                }
            
    ?>
        </body>
    </html>
    Scrivendo in questo modo mi genera questo errore: "Notice: Undefined variable: a in ...". Secondo voi come dobrei fare per rendere visibile la variabile $a dentro if (isset ($_POST['ok2']))?
    Ciao, grazie mille a tutti.
    Ultima modifica di samurai.sette; 04-11-19 alle 16:28

  2. #2
    User L'avatar di andreadragotta
    Data Registrazione
    Oct 2011
    Località
    Bologna
    Messaggi
    57
    Ciao!

    Secondo me la cosa migliore che puoi fare è inizializzare la tua variabile fuori dagli if, la variabile $aaa in realtà anche nel tuo caso risulta visibile fuori dall'if però viene definita solo quando la prima condizione risulta soddisfatta.

    Prendendo il tuo codice php come base farei una cosa di questo tipo:

    Codice PHP:
    $aaa null;
    if (isset (
    $_POST['ok1']))
    {
        
    $aaa $_POST['valore1'];
    }
    if (isset (
    $_POST['ok2']))
    {
         echo 
    $aaa;

    In questo modo in qualsiasi caso la tua variabile $aaa esisterà

  3. #3
    User
    Data Registrazione
    Dec 2019
    Località
    Pisa
    Messaggi
    14
    Samurai, fa attenzione. Il tuo programma potrebbe avere anche qualche problema di "logica". I due if hanno condizioni diverse, quindi durante l'esecuzione può succedere di entrare nel secondo ma non nel primo... (se ok2 fosse settato e ok1 no...)

    Inoltre, dalla parte HTML del tuo esempio mi pare di capire che l'idea sia che l'utente dovrebbe cliccare su "Clicca qui" e poi su "stampa". Ognuno di questi due bottoni però esegue una submit, quindi il codice PHP viene eseguito due volte. Se non sbaglio, per come hai scritto il codice, la prima volta che viene eseguito entra nel primo if e setta la variabile $aaa e la seconda entra nel secondo if e cerca di stampare la variabile $aaa. Il problema è che i valori delle variabili non sopravvivono al ri-caricamento della pagina... per ottenere questo risultato (definire variabili che sopravvivono da un caricamento all'altro) dovresti usare qualcosa tipo le sessioni PHP...

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.