- Home
- Categorie
- Coding e Sistemistica
- PHP
- Passaggio variabile
-
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();