[PHP] if(isset($_POST['Invia'])) non mi riconosce le variabili

federico00

Nuovo Utente
7 Giu 2018
4
0
1
Salve, sto realizzando un sito dinamico, con pagine che cambiano in base alle scelte fatte in una pagina iniziale (Se nella combobox della pagina iniziale seleziono "Ariete", alla pressio del tasto visualizza devo visualizzare la pagina con sfondo ariete ecc..). La pagina è interfacciata con un database, da cui prende le immagini da visualizzare.
Fino a qui tutto bene, il problema sorge quando, alla pressione di un tasto in questa seconda pagina, devo compiere delle operazioni (inviare una variabile o anche stamparla).

Alla pressione del tasto "indietro" riesco effettivamente a tornare alla pagina iniziale, invece alla pressione del tasto "invia" semplicemente 'svuota' tutte le variabili, rimuovendo le immagini dalla pagina e presentando l'errore "Notice: Undefined index: Combobox1 in C:\xampp\htdocs\esame\.....[ecc]"

Soluzioni?
Ne ho provate di tutti i colori ma non riesco a risolvere..
Codice:
<?php
    include("connDB.php");
   $es=$_POST['Combobox1'];
   $q2="select img,nome,bckG,arduino FROM costellazioni WHERE id = '$es' ";
$ris2=mysql_query($q2,$eDB) or die("errore nella query");
$row2=mysql_fetch_array($ris2) ;

       //contiene l'id della scelta
    ?>

<html>
<head>
<link href="style2.css" rel="stylesheet">
    <title>Visualizza</title>
</head>
<body background="grey">
<form ACTION="visualizza.php" METHOD="POST">  <!-- rimanda alla stessa pagina -->
<FONT COLOR="blue" size="4">
<br>
<center><h1 id="nome" style="width:320px;height:44px;"><?php echo $row2['nome'] ?></h1></center>
<br>
<center><img src="Costellazioni/<?php echo $row2['img'] ?>" width="371" height="328" alt=""></center>
<img src="images/<?php echo $row2['bckG'] ?>"  alt="" style="position:absolute;width:400px;height:400px;left:70px;top:100px;transform: rotate(-20deg);">
<img src="images/<?php echo $row2['bckG'] ?>"  alt="" style="position:absolute;width:400px;height:400px;left:910px;top:100px;transform: rotate(20deg);">

<input type="submit" id="Button2" name="Indietro" value="Indietro" style="position:absolute;width:160px;height:60px;left:500px;top:450px">
<input type="submit" id="Button1" name="Invia" value="Invia" style="position:absolute;width:160px;height:60px;left:705px;top:450px">
<!-- <input type="hidden" name="x" value="<?php echo$row2['arduino']?>">       variabile arduino da mandare -->

<?php    //Funzione button Indietro
$x=$row2['arduino'];
if(isset($_POST['Indietro'])) {
    header("location: index.php");
}

if(isset($_POST['Invia']))
//$x=$_POST['x'];

echo $x;
?>

</form>
</body>

</html>
 
Ciao non ho capito bene dove hai il problema...comunque lascia il mysql e utilizza il mysqli
PHP:
        $host="localhost";
        $user="tuoUser";
        $psw="tuaPassword";
        $name_db="Tuo Db";
        $mysqli = new mysqli($host, $user, $psw, $name_db);
        if ($mysqli->connect_error) {
            die("Errore di connessione (".$mysqli->connect_errno .")".$mysqli->connect_error);
        }

$result = $mysqli->query("SELECT * FROM Tua Tabella");
    $mysqli->set_charset("utf8");
  
    $row= $result->fetch_assoc();
        $a = $row['campo1'];
        $b = $row['campo2'];
Hai provato ad inserire il codice di visualizza nella stessa pagina dove hai il form inserendolo tra l' if(isset($_POST['invia'])){
...codice php di visualizza.php
}.
Ovviamente l'action del form lo modifichi togliendo visualizza.php
 
Hai provato così
PHP:
 if(isset($_POST['Combobox1'])){
$es=$_POST['Combobox1']
 $host="localhost";
        $user="tuoUser";
        $psw="tuaPassword";
        $name_db="Tuo Db";
        $mysqli = new mysqli($host, $user, $psw, $name_db);
        if ($mysqli->connect_error) {
            die("Errore di connessione (".$mysqli->connect_errno .")".$mysqli->connect_error);
        }
$result = $mysqli->query("SELECT * FROM costellazioni WHERE id = $es ");
    $mysqli->set_charset("utf8");
  
    $row2= $result->fetch_assoc();
       
}
 
ciao
per capire ti faccio due schemi semplicissimi e se non ho capito male quello che vuoi fare
nel primo leggi chiamndo la pagina la prima volta quanto trasmesso via post, poi nella stessa pagina dai il submit, a questo punto il valore della variabile che proveniva dalla pagina precedente sparisce, fare il submit è ricaricare la pagina.
nel secondo invece prima attivo le sissioni, poi passo in una variabile di sessione il valore del post proveniente dalla pagina precedente
a questo punto anche se do il submit la variabile di sessione viene valorizzate


variabile sparisce
PHP:
<?php
$da_prec=$_POST['prededente'];
echo $da_prec;
if(isset($_POST['invia'])){
    echo $da_prec;//la variabile sparisce
    
}
?>
<form action="#" method="post"><input name="invia" type="submit" /></form>
variabile non sparisce
PHP:
<?php
session_start();
$_SESSION['da_prec']=$_POST['prededente'];
echo $_SESSION['da_prec'];
if(isset($_POST['invia'])){
    echo $_SESSION['da_prec'];//la variabile NON sparisce
    
}
?>
<form action="#" method="post"><input name="invia" type="submit" /></form>
spero di essermi di aver capito e essermi spiegato bene
 

Discussioni simili