[PHP] Problème variable..

Résolu
digsaw_- Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   -  
digsaw_- Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

voici mon code :


for ($l=1;$l<13;$l++)
{
      if (isset ($_REQUEST["MOD".$l]) && isset ($_REQUEST["MOI_".$l]) &&  isset   ($_REQUEST["MOS_".$l]))
      {
             ${'MOD_'.$l} = $_REQUEST["MOD".$l];
             ${'MOI_'.$l} = $_REQUEST["MOI".$l];
             ${'MOS_'.$l} = $_REQUEST["MOS".$l];
             ${'massesalar_'.$l} = ${'MOD_'.$l} + ${'MOI_'.$l} + ${'MOS_'.$l};
       }

}



for ($l=1;$l<13;$l++)
{

        echo "<input name 'massesalar_".$l."' value'".${'massesalar_'.$l}."'>

}




Mon problème est que les variables $massesalar_1, $massesalar_2 [..] $massesalar_12, sont marquées comme indéfinies.

Merci d'avance



A voir également:

11 réponses

Deathmann Messages postés 222 Date d'inscription   Statut Membre Dernière intervention   59
 
Bonjour,

As tu initialisées tes variables ?
0
digsaw_- Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   58
 
Bonjour,

Oui les 3 variables qui s'ajoutent pour $massesalar_1 à 12 sont inisialisées avec le $_RESQUEST
0
le père
 
Bonjour

C'est certainement qu'une au moins de tes variables $_REQUEST["MODx"], $_REQUEST["MOSx"] ou $_REQUEST["MOIx"] n'est pas définie

Fais un print_r ($_REQUEST) avant ton for pour vérifier
0
digsaw_- Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   58
 
Merci le père.. Je ne pense jamais à le vérifier comme ceci...

Cela marque Array ()

c'est tout.. donc je suppose que c'est vide...

Le truc c'est que avant je faisai ce genre de calculs dans un if (isset($_REQUEST['validation'])) pour que les calculs se fassent après le clic du bouton validation.

J'ai voulu changer et j'ai sorti ce calcul de ce IF, mais maintenant je n'arrive plus, comme ici, à prendre les valeurs de mes INPUTS comme $_REQUEST["MOSx"] etc... et je ne vois pas pourquoi ...
0
le père
 
Effectivement, si tu as simplement Array(), c'est que $_REQUEST est vide. Ce qui veut dire que ton formulaire n'a pas été validé.
Normalement, ton if (isset($_REQUEST['validation'])) est correct. Peux-tu montrer le code? Il n'est peut-être pas au bon endroit.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
digsaw_- Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   58
 
Ben je ne monterais que un tableau en mémoire qui contien des <tr> <td> etc... le if (isset($_REQUEST['validation'])) je l'ai enlevé pour que le calcul se fasse directement.. Dans mon code il n'y a juste qu'une requête SQL que je peux met qui récupère les valeurs de $_REQUEST["MOSx"]




$query99="select * from rh WHERE type='".$type_ligne[$l]."'";
 $res99 = mysql_query($query99) 
$row99=mysql_fetch_array($res99);


for ($m=1;$m<=12;$m++)
		{
			echo "<td><INPUT name='".$MOD_".$m."' value='".$row99["mois_".$m]."' ></td>\n";

		}


Mais les valeurs de $MODx $MOIx et $MOSx sont bien récupérées dans les INPUTS... 

0
le père
 
Le problème n'est pas au niveau de cette partie du code. Tu récupères correctement les valeurs qui sont déjà dans la base de données, c'est très bien mais ce n'est pas la question.
Le problème c'est qu'il ne faut absolument pas ôter le if (isset($_REQUEST['validation'])), sinon tu traites le formulaire avant qu'il ne soit saisi. Mais ça dépend de comment est fait ton code, c'est pour ça que je te demande où tu avais mis ce if
0
digsaw_- Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   58
 
ha pardon j'avais mal compris ! je l'ai mis comme ceci :



if (isset($_REQUEST['validation']))
{

          Ma requete SQL

}

for ($l=1;$l<13;$l++)
{
      if (isset ($_REQUEST["MOD".$l]) && isset ($_REQUEST["MOI_".$l]) &&  isset   ($_REQUEST["MOS_".$l]))
      {
             ${'MOD_'.$l} = $_REQUEST["MOD".$l];
             ${'MOI_'.$l} = $_REQUEST["MOI".$l];
             ${'MOS_'.$l} = $_REQUEST["MOS".$l];
             ${'massesalar_'.$l} = ${'MOD_'.$l} + ${'MOI_'.$l} + ${'MOS_'.$l};
       }

}



for ($l=1;$l<13;$l++)
{

        echo "<input name 'massesalar_".$l."' value'".${'massesalar_'.$l}."'>

}




Et je vien de m'appercevoir que lorsque je validait la page j'arrivais a récupérer les résultats dans le $_REQUEST...

Merci pour ton aide
0
le père
 
Au début de ton code :
  for ($l=1;$l<13;$l++) ${'massesalar_'.$l}=0; 

Comme ça tes variables seront initialisées à 0 si le formulaire n'est pas saisi
0
digsaw_- Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   58
 
D'accord mais en fait.. le formulaire n'étant pas remplis la première fois sa marche c'est ok.. mais le truc c'est qu'il récupère donc les valeur dans la BDD et n'a pas besoin de le remplir à nouve
--au.. ce qu ej'aimerais c'est qu'il charge les valeur dans les inputs à partir de la requete sql, et qu'il fasse les calculs.. est ce possible ?

Digsaw
'Avoir une section fumer dans un restaurant, c'est comme avoir une section pisseur dans une piscine !'
0
le père
 
Bien sûr. Il suffit d'ajouter les 3 valeurs au moment où tu les récupères dans la base :

$row99=mysql_fetch_array($res99);
for ($m=1;$m<=12;$m++)  {
  echo "<td><INPUT name='".$MOD_".$m."' value='".$row99["mois_".$m]."' ></td>\n";

  ${'massesalar_'.$l}=$row99["mois_".$m]+$row99["xxx".$m] + $row99["yyy".$m]
}

avec xxx et yyy correspondant aux champs où tu retrouves les valeurs de MOI ert MOS
0
digsaw_- Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   58
 
Merci beaucoup le père ! ton aide m'a été très utile ! merci encore
0