- Home
- Categorie
- Coding e Sistemistica
- Coding
- Passaggio variabile
- 
							
							
							
							
							
Passaggio variabileCiao a tutti, per quale motivo funziona tutto ma non il passaggio della variabile A1 che dovrebbe riportare la scelta dell'utente attraverso input di tipo radio ? Grazie, Marco CODICE: [php]<?php 
 include ("conf.inc.php");$cod = $_POST['codice']; $sql = "select * from $tabella WHERE cartellino = '$cod'"; 
 $query = mysql_query ($sql, $connessione) or die ("Problemi con la visualizzazione della lista utenti");
 while ($rigo = mysql_fetch_array ($query))
 {
 $cartellino = $rigo["cartellino"];
 $txtnome = $rigo["txtnome"];
 $txtcognome = $rigo["txtcognome"];$txtnome = str_replace("'","?",$txtnome); 
 $txtcognome = str_replace("'","?",$txtcognome);echo "<table width=80% align="center"><tr><td> 
 <h2 align="justify"><br /><br/>Benvenuto $txtnome $txtcognome <br /><br />
 da questa pagina potrai accedere alla sessione online per sostenere l'esame relativo alle procedure di Prevenzione, Protezione e Sicurezza
 di cul al D.Lvo 81/2008.Premendo sul pulsante Invio partirà la sessione di esame composta da 20 domande, scelte a caso dal sistema informatico.<br /><br/>Tempo a disposizione: 40 minuti. 
 <br /><br/>
 </h2>
 </td></tr></table>";
 }$sql1 = "select * from $tabella2 WHERE id = 1"; 
 $query1 = mysql_query ($sql1, $connessione) or die ("Problemi con la visualizzazione della lista utenti");
 while ($rigo = mysql_fetch_array ($query1))
 {
 $Q1_c = $rigo["Q1_c"];
 $Q1_q = $rigo["Q1_q"];
 $Q1_r1 = $rigo["Q1_r1"];
 $Q1_r2 = $rigo["Q1_r2"];
 $Q1_r3 = $rigo["Q1_r3"];
 $Q1_r4 = $rigo["Q1_r4"];
 }
 ?><form name="form1" method="post" action="quiz1.php"> <table width=80% align="center" bgcolor="#ffffff"> 
 <tr valign="top"> <td width="100%" align="right" valign="top" colspan = "2"><h3>Domanda 1</h3><br /><br /></td> </tr><tr valign="top"> <td width="100%" valign="top" colspan = "2"><h3><?php echo $Q1_q;?></h3><br /><br /></td> </tr> <tr valign="top"> <td width="10%" valign="top"> <input type="radio" name="quiz" value="Q1_r1"> </td> <td width="90%" valign="top"><h3> <?php echo $Q1_r1; ?> </h3></td> </tr> <tr valign="top"> <td width="10%" valign="top"> <input type="radio" name="quiz" value="Q1_r2"> </td> <td width="90%" valign="top"><h3> <?php echo $Q1_r2; ?> </h3></td> </tr> <tr valign="top"> <td width="10%" valign="top"> <input type="radio" name="quiz" value="Q1_r3"> </td> <td width="90%" valign="top"><h3> <?php echo $Q1_r3; ?> </h3></td> </tr> <tr valign="top"> <td width="10%" valign="top"> <input type="radio" name="quiz" value="Q1_r4"> </td> <td width="90%" valign="top"><h3> <?php echo $Q1_r4; ?> </h3></td> </tr></table> <?php echo " 
 <table width="80%" align="center" bgcolor="#ffffff">
 <tr valign="top"> <td width="100%" align="right" valign="top" colspan = "2"><div align=\"right\"> <input type=\"hidden\" name=\"cartellino\" value=$cartellino> <input type=\"hidden\" name=\"txtnome\" value=$txtnome> <input type=\"hidden\" name=\"txtcognome\" value=$txtcognome> <input type=\"hidden\" name=\"A1_c\" value=$Q1_c> <input type=\"hidden\" name=\"A1\" value=$quiz> <input type=\"Submit\" name=\"submit\" value=Invio> <p> </p> </div></form> 
 </td></tr></table>";
 ?>[/php]
 
- 
							
							
							
							
							
Dovresti postare anche la pagina php che usi per controllare i dati di questo form. 
 
- 
							
							
							
							
							
Eccolo ... [PHP]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
 <HTML><HEAD><TITLE>Esame sulla Prevenzione, Protezione e Sicurezza sul luogo di lavoro</TITLE>
 <META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><? 
 include ("conf.inc.php");$cartellino = $_POST['cartellino']; 
 $txtnome = $_POST['txtnome'];
 $txtcognome = $_POST['txtcognome'];
 $A1_c = $_POST['A1_c'];
 $quiz = $_POST['A1'];echo " 
 <HTML><HEAD><TITLE>Esame sulla Prevenzione, Protezione e Sicurezza sul luogo di lavoro</TITLE></HEAD>
 <BODY bgcolor="ffffff">
 <h3>$cartellino $txtnome $txtcognome $A1_c $quiz</h3></body></html>";$sql="UPDATE utenti SET txtnome='$txtnome', txtcognome='$txtcognome' WHERE cartellino = '$cartellino' "; 
 $query= mysql_query ($sql, $connessione) or die ("Inserimento non possibile! - Chiedi assistenza.");?> 
 </BODY>
 </HTML>[/PHP]
 
- 
							
							
							
							
							
[PHP] <input type="hidden" name="A1" value=$quiz> 
 [/PHP]
 E' questo qui il tuo errore, la variabile $quiz è vuota al momento dell'echo, quindi ti manda sempre un valore vuoto.
 Il valore dei radiobutton puoi vederlo semplicemente con
 [PHP]$quiz = $_POST['quiz'];[/PHP]
 e la variabile assumerà il valore del radiobutton selezionato nel form.
 
- 
							
							
							
							
							
Ciao, mi aggancio a questo post perche' ho pure io un problema di passaggio di variabili da un file all'altro file che invia 
 [php]<?
 SESSION_START();
 ?>
 <form method=post action="legge.php">
 <input type="SUBMIT" value=" Invia">
 <input type="text" value="" name=" uno">
 <input type="text" value="" name=" due">
 </form>
 [/php]file che riceve
 [php]<?
 SESSION_START();
 $_SESSION['uno'] = $_POST['uno'];
 $_SESSION['due'] = $_POST['due'];
 $action = (isset($_GET["action"]))? $_GET["action"] : $_POST['action']
 ?>
 <form method=post action="?action=a">
 <input type="SUBMIT" value=" Invia 1">
 </form>
 <form method=post action="?action=b">
 <input type="SUBMIT" value=" Invia 2">
 </form>
 <?
 if ($action=="a"){
 echo "uno-->".$_SESSION['uno']."<br />";
 }else if ($action=="b"){
 echo "due--> ".$_SESSION['due']."<br />";
 }else {
 echo $_SESSION['uno']."---".$_SESSION['due'];
 }
 ?>[/php]Dunque:
 al primo ingresso nel file legge.php essendo $action vuota esegue l'ultima riga del listato: scrive a video le due variabili e mette i due pulsanti "Invia 1" e "Invia 2"; il problema nasce qui nel senso che qualunque dei due pulsani io scelga le variabili sono vuote.
 ..dove sbaglio??...:?:bho:
 
- 
							
							
							
							
							
Sostituisci questo: 
 [HTML]<form method=post action="?action=a">
 <input type="SUBMIT" value=" Invia 1">
 </form>
 <form method=post action="?action=b">
 <input type="SUBMIT" value=" Invia 2">
 </form>[/HTML]
 con questo:
 [HTML]<form method=post action="legge.php">
 <input type="SUBMIT" value=" Invia 1">
 <input type="hidden" name="action" value="a">
 </form>
 <form method=post action="legge.php">
 <input type="SUBMIT" value=" Invia 2">
 <input type="hidden" name="action" value="a">
 </form>[/HTML]E' sbagliato il modo in cui intendevi passare il valore di "action", quella nominata nel form è il nome della pagina che elabora i dati, non il nome di una variabile... 
 
- 
							
							
							
							
							
Ho provato il tuo suggerimento ma il risultato e' il medesimo, anche perche' penso che i due metodi si equivalgano; se non sto prendendo una cantonata scrivere 
 [php]
 action="?action=a"
 [/php]equivale a dargli come target il file stesso in cui viene eseguito passandogli la variabile $action=a, il che equivale correttamente a quanto proponi tu
 [php]
 action="legge.php"
 // seguito dal passaggio della variabile $action=a tramite campo hidden
 [/php]
 
- 
							
							
							
							
							
Allora prova a non chiamarla "action" la variabile che intendi passare... Probabilmente è una parola riservata 
 
- 
							
							
							
							
							
Cambiato $action in $scelta...sigh..nulla.. stesso comportamento di prima..:bho: 
 
- 
							
							
							
							
							
Posta la nuova pagina php che hai realizzato con "scelta" al posto di "action" 
 
- 
							
							
							
							
							
[php]<? 
 SESSION_START();
 $_SESSION['uno'] = $_POST['uno'];
 $_SESSION['due'] = $_POST['due'];
 $scelta = (isset($_GET["scelta"]))? $_GET["scelta"] : $_POST['scelta']
 ?>
 <form method=post action="?scelta=a">
 <input type="SUBMIT" value=" Invia 1">
 </form>
 <form method=post action="?scelta=b">
 <input type="SUBMIT" value=" Invia 2">
 </form>
 <?
 if ($scelta=="a"){
 echo "uno-->".$_SESSION['uno']."<br />";
 }else if ($scelta=="b"){
 echo "due--> ".$_SESSION['due']."<br />";
 }else {
 echo $_SESSION['uno']."---".$_SESSION['due'];
 }
 ?>[/php]
 
- 
							
							
							
							
							
[PHP]$scelta = (isset($_GET["scelta"]))? $_GET["scelta"] : $_POST['scelta'][/PHP] Ecco l'errore! Scrivilo così: 
 [PHP]$scelta = (isset($_GET["scelta"])? $_GET["scelta"] : $_POST['scelta']);[/PHP]
 
- 
							
							
							
							
							
No..no..era gia' scritto giusto...sorry...devo aver fatto casino io nel copia/incolla... anche perche senno' php mi avrebbe segnalato errore..ed invece non me ne segnala... Tieni conto che la variabile $scelta la legge correttamente,_infatti esegue correttamente il ciclo di if/else... ma [..] non mi da piu le variabili $_SESSION['uno'] e ['due'] 
 
- 
							
							
							
							
							
Non è che se ridichiari "session_start()" lui inizia una nuova sessione, cancellando le variabili di quella precedente? 
 
- 
							
							
							
							
							
@momino said: Non è che se ridichiari "session_start()" lui inizia una nuova sessione, cancellando le variabili di quella precedente? No,_anzi,_session_start() ci va proprio per il passaggio di variabili da un file all'altro.. 
 ..per cancellarle avrei dovuto mettere session_unset();