[PHP] Problème variable..

Résolu/Fermé
digsaw_- Messages postés 489 Date d'inscription lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 - 15 juin 2011 à 14:11
digsaw_- Messages postés 489 Date d'inscription lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 - 16 juin 2011 à 11:31
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



11 réponses

Deathmann Messages postés 222 Date d'inscription jeudi 9 juin 2011 Statut Membre Dernière intervention 11 décembre 2015 59
15 juin 2011 à 14:16
Bonjour,

As tu initialisées tes variables ?
0
digsaw_- Messages postés 489 Date d'inscription lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 57
15 juin 2011 à 14:19
Bonjour,

Oui les 3 variables qui s'ajoutent pour $massesalar_1 à 12 sont inisialisées avec le $_RESQUEST
0
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 lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 57
15 juin 2011 à 14:30
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
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 lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 57
15 juin 2011 à 14:47
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 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 lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 57
16 juin 2011 à 10:32
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
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 lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 57
16 juin 2011 à 11:00
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
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 lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 57
16 juin 2011 à 11:31
Merci beaucoup le père ! ton aide m'a été très utile ! merci encore
0