PDA

View Full Version : [PHP]Indirizzamento indiretto variabili


Grein
04-12-2012, 19:08
ciao a tutti,
ho queste due pagine(index.php e Calcola.php):

<HTML>
<HEAD><TITLE>Inserimento_dati</TITLE></HEAD>
<BODY>
<FORM ACTION='Calcola.php' METHOD='POST'>
<?php

for($i=0;$i<5;$i++)
{
echo"
<TABLE BORDER='1'>
<TR>
<TD>
SESSO
<TD>
GENERE
</TR>
<TR>
<TD>
<SELECT NAME=SESSO$i>
<OPTION value=1>Femmina
<OPTION value=0>Maschio
</SELECT>
<TD>
<SELECT NAME=GENERE$i>
<OPTION value=1>Romantico
<OPTION value=2>Avventura
<OPTION value=3>Giallo
<OPTION value=4>Horror
<OPTION value=5>Intellettuale
<OPTION value=6>Comico
</SELECT>
</TR>
</TABLE>";
}
?>
<BR><CENTER><INPUT TYPE='submit' VALUE='Invia'></CENTER>

</FORM>
</BODY>
</HTML>
<HTML>
<HEAD><TITLE>Calcola</TITLE></HEAD>
<BODY>
<?php
$sex="SESSO";
$gen="GENERE";
for ($i=0; $i<5; $i++){
$s=$sex.$i;
$g=$gen.$i;
switch($$g)
{ case 1: if($$s==0){
$RM++;
echo "|";
}
else{
$RF++;
echo "|";
}
break;
case 2: if($$s==0){
$AM++;
echo "|";
}
else{
$AF++;
echo "|";
}
break;
case 3: if($$s==0){
$GM++;
echo "|";
}
else{
$GF++;
echo "|";
}
break;
case 4: if($$s==0){
$HM++;
echo "|";
}
else{
$HF++;
echo "|";
}
break;
case 5: if($$s==0){
$LM++;
echo "|";
}
else{
$LF++;
echo "|";
}
break;
case 6: if($$s==0){
$CM++;
echo "|";
}
else{
$CF++;
echo "|";
}
break;
}
}
?>
</BODY>
</HTML>
Qualcuno sa perchè nella seconda pagina non riesco a vedere niente? Dove ho sbagliato?

Grein
04-12-2012, 19:50
Non usi gli input per passare i parametri da una pagina all'altra e l'informazione si perde...dovresti usare gli input, che vengono salvati dal browser in un vettore chiamato $_POST (leggiti un po' di documentazione e non ti sembrerà + arabo :) ) da dove tu puoi estrarli usando come indice il nome dell'input che vuoi sia passato....esempio vuoi passare il sesso?

nell'index avrai:
<SELECT NAME=SESSO>
<OPTION value=1>Femmina
<OPTION value=0>Maschio
</SELECT>

come hai fatto tu....

nella pagina "calcola" estrarrai il valore della voce nel menu che hai selezionato con $sex = $_POST['SESSO']

Il problema è che devo per forza usare l'indirizzamento indiretto...