[PHP] Rendere visibile variabile di un costrutto if in un altro costrutto if

samurai.sette

Utente Attivo
17 Dic 2015
213
5
18
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:
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" /><br /><br />
            <input type="text" name="valore2" />
        </form>
        <?php
            if (isset ($_POST['ok1']))
            {
                $a = $_POST['valore1'];
            }
            if (isset ($_POST['ok2']))
            {
                echo $a;
            }
        ?>
    </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.
 

Felotti

Nuovo Utente
7 Ott 2019
14
0
1
Ciao,
non capisco come mai metti due submit, non sarebbe più utile mettere due radio per scegliere l'azione da intraprendere?
In quel caso quindi avresti due file, che chiamerò form.html e brain.php.

form.html
HTML:
<html>
    <head>
    </head>
    <body>
        <form method="post" action="brain.php">
            Clicca qui<input type="radio" name="button" value="ok1" /><br /><br />
            stampa<input type="radio" name="button" value="ok2" /><br /><br />
            Valore 1<input type="text" name="valore1" /><br /><br />
            Valore 2<input type="text" name="valore2" />
            <input type="submit" value="Vai">
        </form>
</body>
</html>
brain.php
PHP:
<?php
            if ($_POST['button'] == "ok1")
            {
                $a = $_POST['valore1'];
            }
            if ($_POST['button'] == "ok2")
            {
            echo $a; //ERRORE!! LEGGI COMMENTO SOTTOSTANTE
        ?>
Premetto che da come hai scritto il codice, nel caso l'utente scelga ok2, $a avrà valore indefinito, in quanto non gli assegni valore 2 bensì stampi una variabile indefinita.
Pertanto dovresti modificare la scelta della seconda opzione e il file verrebbe scritto in questo modo:
PHP:
<?php
            if ($_POST['button'] == "ok1")
            {
                $a = $_POST['valore1'];
            }
            else if($_POST['button'] == "ok2")
            {
                 $a=$_POST['valore2'];
            }
            echo $a;
?>
 
Ultima modifica: