Bonjour à tous , bonjour à toutes

Je suis désespérée et vient à vous pour que vous m'aidiez J'ai un problème qui me prend la tête depuis déjà 2 semaines. Il est assez complexe, je vais essayer d'être le plus explicite possible.

Mon problème concerne un gros projet de dev web, je ne vais pas vous mettre le code du projet, il est beaucoup trop complexe.

J'ai essayé de schématiser mon problème en re-écrivant les lignes de code qui posent problème.
L'exemple qui va suivre n'a donc ni queue ni tête mais vous permettra juste de comprendre dans les grandes lignes quel est le problème.

#Avant de commencer je tiens à remercier du fond du coeur la personne qui réussira à me dépanner #


Voici la premiere partie du code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 <?php
$boucle=1;
$cpt=1;
?>
<form method="post" action='joli2.php'>
	<?php while($boucle<=3)
	{
		?>
		<table width="100%" border="0" cellspacing="2" cellpadding="5">
			<tr>Utilisateur <?=$boucle;?></tr>
			<tr>            
				<td>Nom</td>
				<td><input name="Nom<?=$boucle;?>" type="text" value="Nom<?=$boucle;?>" ></td>
			</tr>
			<tr>            
				<td>Prenom</td>
				<td><input name="Prenom<?=$boucle;?>" type="text" value="Prenom<?=$boucle;?>"></td>
			</tr>		
			<tr>            
				<td>Age</td>
				<td><input name="Age<?=$boucle;?>" type="text" value="Age<?=$boucle;?>"></td>
			</tr>
			<input type="submit" value="Modifier" name="modifierUser<?=$boucle;?>">
		</table>
		<hr style="border-top-width: 9px;">
		<?php 
		$boucle++;
	}
	?>
 
 
	<hr style="border-top-width: 15px;">
 
 
	<?php while($cpt<=2)
	{
		?>
		<table width="100%" border="0" cellspacing="2" cellpadding="5">
			<tr>            
				<td>Adresse</td>
				<td><input name="Adresse<?=$cpt;?>" type="text" value="Adresse<?=$cpt;?>" ></td>
			</tr>
			<tr>            
				<td>Cp</td>
				<td><input name="Cp<?=$cpt;?>" type="text" value="Cp<?=$cpt;?>"></td>
			</tr>		
			<input type="submit" value="Modifier" name="modifierInfo<?=$cpt;?>">
		</table>
		<hr style="border-top-width: 9px;">
		<?php 
		$cpt++;
	}
	?>
</form>
J'ai (UN SEUL) formulaire. Dans lequel plusieurs informations peuvent être traitées. (Plusieurs boutons modifier vont apparaître)

Image : Nom : p9.png
Affichages : 221
Taille : 20,6 Ko

Chacuns des boutons modifier auront un des noms différents (c'est logique) pour leurs permettre de lancer le traitement de modification correspondant (ça aussi, c'est logique )

Rappel : Nous avons une premiere page, dans laquelle sont affichées des informations. Il est possible de les modifier en cliquant sur le bouton "Modifier". Celà faisant appel à "joli2.php"

Voici le contenu de joli2.php

De la manière la plus sale du monde, le fonctionnement du traitement serait le suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
<?php
 
if(isset($_POST['modifierUser1']))
{
	$nom=$_POST['Nom1'];
	$prenom=$_POST['Prenom1'];
	$age=$_POST['Age1'];
	echo '<b> Le nom : </b>'.$nom.'<br>';
	echo '<b> Le prenom : </b>'.$prenom.'<br>';
	echo '<b> L age : </b>'.$age.'<br>';
// On fait un update dans la base de données.
}
elseif(isset($_POST['modifierUser2']))
{
	$nom=$_POST['Nom2'];
	$prenom=$_POST['Prenom2'];
	$age=$_POST['Age2'];
	echo '<b> Le nom : </b>'.$nom.'<br>';
	echo '<b> Le prenom : </b>'.$prenom.'<br>';
	echo '<b> L age : </b>'.$age.'<br>';
// On fait un update dans la base de données.
}
elseif(isset($_POST['modifierUser3']))
{
	$nom=$_POST['Nom3'];
	$prenom=$_POST['Prenom3'];
	$age=$_POST['Age3'];
	echo '<b> Le nom : </b>'.$nom.'<br>';
	echo '<b> Le prenom : </b>'.$prenom.'<br>';
	echo '<b> L age : </b>'.$age.'<br>';
// On fait un update dans la base de données.
}
 
 
 
if(isset($_POST['modifierInfo1']))
{
	$adresse=$_POST['Adresse1'];
	$cp=$_POST['Cp1'];
	echo '<b> L adresse : </b>'.$adresse.'<br>';
	echo '<b> Le cp : </b>'.$cp.'<br>';
// On fait un update dans la base de données.
}
elseif(isset($_POST['modifierInfo2']))
{
	$adresse=$_POST['Adresse2'];
	$cp=$_POST['Cp2'];
	echo '<b> L adresse : </b>'.$adresse.'<br>';
	echo '<b> Le cp : </b>'.$cp.'<br>';
// On fait un update dans la base de données.
}
 
?>
Oui, c'est bien beau mais nous avons marqué en brut le numéro des $_POST 1 ,2 et 3


Nous pouvons donc faire mieux, au travers d'une boucle, mais le code qui va suivre est toujours aussi moche.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
 
$i=1;
$termine=0;
while($i<50 || $termine!=1)
{
	if(isset($_POST['modifierUser'.$i]))
	{
		$nom=$_POST['Nom'.$i];
		$prenom=$_POST['Prenom'.$i];
		$age=$_POST['Age'.$i];
		echo '<b> Le nom : </b>'.$nom.'<br>';
		echo '<b> Le prenom : </b>'.$prenom.'<br>';
		echo '<b> L age : </b>'.$age.'<br>';
// On fait un update dans la base de données.
		$termine=1;
	}
	$i++;
}
 
$i=1;
$termine=0;
while($i<50 || $termine!=1)
{
	if(isset($_POST['modifierInfo'.$i]))
	{
		$adresse=$_POST['Adresse'.$i];
		$cp=$_POST['Cp'.$i];
		echo '<b> L adresse : </b>'.$adresse.'<br>';
		echo '<b> Le cp : </b>'.$cp.'<br>';
// On fait un update dans la base de données.
		$termine=1;
	}
	$i++;
}
 
?>
J'en suis donc là. Nous nous rendons comptes qu'il y a un problème. En admettant qu'on appuie sur le dernier bouton modifier du programme.
Le joli2.php va devoir faire toutes les boucles du modifierUser et toutes les boucles du modifierInfo pour enfin tomber sur le bon if(isset($_POST['modifierInfo2'])).

Ma question est donc :

Comment faire pour d'abord tester les if(isset($_POST['modifierUser'.$i])) avant de faire les boucles ?

Note : Je ne peux pas faire d'autres <form></form>


Ma première piste de réflexion (que je n'ai pas réussi à exploiter) aurait été de tester de la manière suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
if(isset($_POST['modifierInfo'.######+ caractere JOKER ######]))
De manière à dire au programme : " Hey, dis moi si quelqu'un à appuyé sur modifierInfo, quel que soit l'ID qui suit je m'en fou , je ferai mes boucles après"


Toi qui lis ce message, je te remercie d'en être arrivé jusque là. Si tu as un idée, n'hésites pas à la partager, je ne t'en remercierai jamais assez.

Bonne journée !