Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/06/2008, 09h40   #1
Membre du Club
 
Avatar de stomerfull
 
Inscription : septembre 2005
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 244
Points : 45
Points : 45
Par défaut Condition par rapport au formulaire toujours vérifiée

Bonjour

jai une page avec deux liste déroulante et un bouton

PHP:
Code :
1
2
3
4
5
6
7
8
9
<form action="traite.php">
<select name="valeur" >
<option value="1ou0">Oui/non </option>
</select>
<select name="valeur1" >
<option value="1ou0">Oui/non </option>
</select>
<input type="button" name="btn">
</form>

dans traite.php jai un probleme.
voici le code
PHP:
Code :
1
2
3
4
5
6
7
8
9
10
11
$nbPERSON=10 //valeur récupérée dans la base
$nbLIMIT=10 //valeur récupérée dans la base
 
if ($btn!=""  && $valeur==1 && $nbPERSON==$nbLIMIT )//Condition1
{        
  $err="impossible";
}
else
{
$req=.... 
}

Mon probleme c'est que
quand je modifie la liste deroulante $valeur1 et je clique sur le bouton ça tombe toujours dans $err="impossible" evidement parceque la condition 1 est toujours verifié et c'est là mon probleme.

Je veux donc modifier la liste deroulante $valeur1 alors que la condition1 doit être toujours vraie

merci pour votre aide
stomerfull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 09h47   #2
Membre éprouvé
 
Avatar de mon_nom_est_personne
 
Inscription : mai 2008
Messages : 450
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 450
Points : 451
Points : 451
normal t'as pas de teste sur $valeur1 masi sur $valeur.
donc si la condition pour $valeur est verifier il esy normal que ca lance le code dans la condition.
mon_nom_est_personne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 10h01   #3
Membre du Club
 
Avatar de stomerfull
 
Inscription : septembre 2005
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 244
Points : 45
Points : 45
oui je comprend

mais aux cas ou je n'ai plus 2 select dans ma page mais 10 par exemple
alors que l'utilisateur pourrait choisir de les changer comme il veut
donc je doit tester $valeur1,$valeur2,....,$valeur10

Code :
1
2
3
4
5
6
7
8
9
 
if ($btn!=""  && $valeur==1 && $nbPERSON==$nbLIMIT )//Condition1
{        
  $err="impossible";
}
elseif($btn!=""  && $valeur1==1(ou0) && $valeur2==1(ou0) ...&& $valeur10==1(ou0) )
{
$req=.... 
}
il tombe toujours dans $err parceque la condition est toujours vérifié ...

merci
stomerfull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 10h07   #4
Membre régulier
 
Étudiant
Inscription : décembre 2006
Messages : 71
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 71
Points : 75
Points : 75
Envoyer un message via MSN à litllechicken
tu transmet comment les données d'une page à une autre? je voie pas de submit !
litllechicken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 10h12   #5
Membre du Club
 
Avatar de stomerfull
 
Inscription : septembre 2005
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 244
Points : 45
Points : 45
je les transmet en méthode POST et le type de boutton est submit
stomerfull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 10h21   #6
Membre régulier
 
Étudiant
Inscription : décembre 2006
Messages : 71
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 71
Points : 75
Points : 75
Envoyer un message via MSN à litllechicken
alors dans <form action='traite.php'> ajoute method='post'
litllechicken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 10h24   #7
Modérateur
 
Avatar de SirDarken
 
Eric Willems
Développeur Web
Inscription : février 2004
Messages : 895
Détails du profil
Informations personnelles :
Nom : Eric Willems
Âge : 30
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Services de proximité

Informations forums :
Inscription : février 2004
Messages : 895
Points : 1 065
Points : 1 065
Envoyer un message via MSN à SirDarken Envoyer un message via Skype™ à SirDarken
Pourrai tu aller en arrière en nous disant ce que tu veux faire ?
Si ton select a un nombre de valeurs variable, ou bien si tu as X select différent.

Car bon faire des if sur un nombre variable de select ca me semble fortement indigeste, donc parle nous plus de l'idée y'as peut-être une solution plus simple.
SirDarken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 10h53   #8
Membre du Club
 
Avatar de stomerfull
 
Inscription : septembre 2005
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 244
Points : 45
Points : 45
Voila donc ce que je voudrai faire

je fais des tests en fonctions de valeurs selectionnés depuis 2 select

je recupere la valeur dans les select par
Code :
1
2
3
4
5
6
<select name="valeur1" class="espARIALx08">
<?    $cochez="";
    if ($valeur1=="") {$valeur1=1;}
    for ($i=0;$i<2;$i++)
    {    if ($i==$valeur1) {$cochez="selected";} else {$cochez="";}    
?>
jutilise la methode POST et un bouton submit dans les formulaires

mon probleme c'est que

la premiere condition est toujours verifié et je n'arrive pas à executer ma requete

Code :
1
2
3
4
5
6
7
8
9
10
11
$nbPERSON=10 //valeur récupérée dans la base
$nbLIMIT=10 //valeur récupérée dans la base
 
if (isset($_POST['btn']) && isset($_POST['valeur']) && $nbPERSON==$nbLIMIT )//Condition1
{
$err="impossible";
}
elseif(isset($_POST['btn']) && isset($_POST['valeur']) && $nbPERSON==$nbLIMIT && isset($_POST['valeur1']) )//Condition1
{
$req=....
}
On ma suggérer de faire un truc du genre

Code :
1
2
3
4
5
6
SI(A,B,C)
    SI(D)
        ALORS action1
    SINON
        ALORS action2
FIN SI(A,B,C)
je suis un peu bloqué merci
stomerfull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 11h35   #9
Modérateur
 
Avatar de SirDarken
 
Eric Willems
Développeur Web
Inscription : février 2004
Messages : 895
Détails du profil
Informations personnelles :
Nom : Eric Willems
Âge : 30
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Services de proximité

Informations forums :
Inscription : février 2004
Messages : 895
Points : 1 065
Points : 1 065
Envoyer un message via MSN à SirDarken Envoyer un message via Skype™ à SirDarken
As-tu essayé ceci
Code :
1
2
3
4
5
6
7
8
9
 
if(isset($_POST['btn'])){//On verifie si y'as un post de lancer
  if(isset($_POST['valeur'])){//On verifie si la valeur du select valeur est ok
    //traitement 1
  }
  if(isset($_POST['valeur1'])){//On verifie si la valeur du select valeur1 est ok
   //traitement 2
  }
}
Mets des echo(); pour chacun pour voir ou tu te situe

J'ai eu un souci similaire y'as peu, j'avais un panneau d'adminsitration qui gère 2 uploads d'images, et pour permettre la modification des 2 images (soit 1, soit l'autre, soit les deux) j'ai utilisé ceci :
Code :
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
 
if ($_GET['mode'] == "modifier"){
		if(isset($_GET['id'])){
			if(!isset($_POST['Submit'])){
				$getid = $_GET['id'];
				$db = mysql_connect(DB_SERVER, SERVER_USER, SERVER_PASSWORD);  
				mysql_select_db(DB_DATABASE,$db); 
				$sql = 'SELECT idsmrealisation, rnom, rmini, rdetail';
				$sql .=' FROM smrealisation WHERE idsmrealisation =\''.$getid.'\'';
				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
				while($data = mysql_fetch_assoc($req)){ 
   					$gettitre = stripslashes($data['rnom']);
					echo('<form enctype="multipart/form-data" action="edit_rea.php?mode=modifier&id='.$_GET['id'].'" method="post" onsubmit="return Verif_form(this)">');
					echo('<div align="left" class="form1"><br>');
					echo('Nom :<input type="text" name="nom" id="nom" value="'.$gettitre.'"><br>');
					echo('Image Miniature :<br><img src=".'.$data['rmini'].'"></img><br><br>Laisser vide si pas de modification d\'image<br><input type="file" name="upminiimg">');
					echo('<br>Image Détaillée :<a href=".'.$data['rdetail'].'" target="_blank">Voir l\'image</a> <br>Laisser vide si pas de modification d\'image<br><input type="file" name="updetailimg">');
    				echo('<br><input name="urlminiimg" type="hidden" value="'.$data['rmini'].'"><input name="urldetailimg" type="hidden" value="'.$data['rdetail'].'"><input type="submit" name="Submit" value="Valider" >');
    				echo('</div>');
  					echo('</form>');
					menu_retour();
				}
			}
			else{//Si on a poster avec image.
				if(!empty($_FILES['upminiimg']['name']) || !empty($_FILES['updetailimg']['name'])){
					//On génére un nom de fichier suivant la date du jour.
					$jour = getdate();
					$nomimg = $jour['year'].$jour['mday'].$jour['hours'].$jour['minutes'].$jour['seconds'];
					//On vérifie l'extension.
					$extensions = array('.png', '.gif', '.jpg', '.jpeg');
					$extensionmini ='';
					$extensiondetail ='';
					if(!empty($_FILES['upminiimg']['name'])){
						$extensionmini = strtolower(strrchr($_FILES['upminiimg']['name'], '.'));
						if(!in_array($extensionmini, $extensions)){
     						aff_warn('[Image Miniature]Vous devez uploader un fichier de type png, gif, jpg, jpeg.<br>Cliquez sur précédent pour retourner au formulaire.');
							exit();
						}
					}
					if(!empty($_FILES['updetailimg']['name'])){
						$extensiondetail = strtolower(strrchr($_FILES['updetailimg']['name'], '.'));
						if(!in_array($extensiondetail, $extensions)){
     						aff_warn('[Image Detaillée]Vous devez uploader un fichier de type png, gif, jpg, jpeg.<br>Cliquez sur précédent pour retourner au formulaire.');
							exit();
						}
					}
					$nommini = '';
					$petitnom = '';
					$nomdetail = '';
					$petitdetail ='';
					if(!empty($_FILES['upminiimg']['name'])){
						$nommini = "../res/upload/realisation/minitmp_{$nomimg}{$extensionmini}";
						$petitnom = "../res/upload/realisation/mini_{$nomimg}{$extensionmini}";
					}
					if(!empty($_FILES['updetailimg']['name'])){
						$nomdetail = "../res/upload/realisation/detailtmp_{$nomimg}{$extensiondetail}";
						$petitdetail = "../res/upload/realisation/detail_{$nomimg}{$extensiondetail}";
					}
					$resultat = false;
					if(!empty($_FILES['upminiimg']['name']) && empty($_FILES['updetailimg']['name'])){
						$resultat = move_uploaded_file($_FILES['upminiimg']['tmp_name'],$nommini);
					}
					if(!empty($_FILES['updetailimg']['name']) && empty($_FILES['upminiimg']['name'])){
						$resultat = move_uploaded_file($_FILES['updetailimg']['tmp_name'],$nomdetail);
					}
					if(!empty($_FILES['upminiimg']['name']) && !empty($_FILES['updetailimg']['name'])){
						if(move_uploaded_file($_FILES['upminiimg']['tmp_name'],$nommini) && move_uploaded_file($_FILES['updetailimg']['tmp_name'],$nomdetail)){
							$resultat = true;
						}
						else{
							$resultat = false;
						}
					}
					if ($resultat){
						if(!empty($_FILES['upminiimg']['name'])){
							if($extensionmini == '.jpeg' || $extensionmini == '.jpg'){
								$source = imagecreatefromjpeg($nommini);
							}
							if($extensionmini == '.png'){
								$source = imagecreatefrompng($nommini);
							}
							if($extensionmini == '.gif'){
								$source = imagecreatefromgif($nommini);
							}
							$destination = imagecreatetruecolor(256, 192);
							$largeur_source = imagesx($source);
							$hauteur_source = imagesy($source);
							$largeur_destination = imagesx($destination);
							$hauteur_destination = imagesy($destination);
							imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
							imagejpeg($destination, $petitnom);
						}
						if(!empty($_FILES['updetailimg']['name'])){
							if($extensiondetail == '.jpeg' || $extensiondetail == '.jpg'){
								$source = imagecreatefromjpeg($nomdetail);
							}
							if($extensiondetail == '.png'){
								$source = imagecreatefrompng($nomdetail);
							}
							if($extensiondetail == '.gif'){
								$source = imagecreatefromgif($nomdetail);
							}
							$largeur_source = imagesx($source);
							$hauteur_source = imagesy($source);
							$largeur_destination = 1000;
							$hauteur_destination = ($hauteur_source * ($largeur_destination / $largeur_source));
							$destination = imagecreatetruecolor($largeur_destination, $hauteur_destination);
							imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
							imagejpeg($destination, $petitdetail);
						}
						$db = mysql_connect(DB_SERVER, SERVER_USER, SERVER_PASSWORD);  
						mysql_select_db(DB_DATABASE,$db); 
						$getid = $_GET['id'];
						$innom =  addslashes($_POST['nom']);
						$inmininom = '';
						$indetailnom = '';
						$sql = '';
						if(!empty($_FILES['upminiimg']['name']) && empty($_FILES['updetailimg']['name'])){
							$inmininom = substr($petitnom,1);
							$sql = "UPDATE smrealisation SET rnom='$innom', rmini='$inmininom' WHERE idsmrealisation='$getid'";
						}
						if(!empty($_FILES['updetailimg']['name']) && empty($_FILES['upminiimg']['name'])){
							$indetailnom = substr($petitdetail,1);
							$sql = "UPDATE smrealisation SET rnom='$innom', rdetail='$indetailnom' WHERE idsmrealisation='$getid'";
						}
						if(!empty($_FILES['upminiimg']['name']) && !empty($_FILES['updetailimg']['name'])){
							$inmininom = substr($petitnom,1);
							$indetailnom = substr($petitdetail,1);
							$sql = "UPDATE smrealisation SET rnom='$innom', rmini='$inmininom', rdetail='$indetailnom' WHERE idsmrealisation='$getid'";
						}
						mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
						if(!empty($_FILES['upminiimg']['name'])){
							@unlink('.'.$_POST['urlminiimg']);
							@unlink('.'.$nommini);
						}
						if(!empty($_FILES['updetailimg']['name'])){
							@unlink('.'.$_POST['urldetailimg']);
							@unlink('.'.$nomdetail);
						}
						aff_message('Modification réussie</div>');
						menu_retour();
						mysql_close();
					}
				}
				else{//Si on a poster sans image.
					$db = mysql_connect(DB_SERVER, SERVER_USER, SERVER_PASSWORD);  
					mysql_select_db(DB_DATABASE,$db);
					$innom = addslashes($_POST['nom']);
					$getid = $_GET['id'];
					$sql ="UPDATE smrealisation SET rnom='$innom' WHERE idsmrealisation='$getid'";
					mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
					aff_message('Modification réussi');
					menu_retour();
					mysql_close();
				}
			}
		}
		else{//Sinon on affiche la liste.
			aff_liste_realisation('modifier');
		}
	}
Bon ca fait beaucoup à lire mais peut-être ca t'illustrera plus le truc.
SirDarken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 13h49   #10
Membre du Club
 
Avatar de stomerfull
 
Inscription : septembre 2005
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 244
Points : 45
Points : 45
je suis un peu bloqué si vosu avez des suggestions

voici mon code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
if ($btnMAJ!="" )
{
 
 
	    if(isset($_POST['valeur']) && $nbPERSON==$nbLIMIT)condition1
		 {
 
		  $err=$message;
		 }
		 if(isset($_POST['valeur1']))condition2
		  {
				$req="update admin_societe set ";
}
}
même si condition 1 est vérifié ça execute toujours la requete

merci
stomerfull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 15h15   #11
Modérateur
 
Avatar de SirDarken
 
Eric Willems
Développeur Web
Inscription : février 2004
Messages : 895
Détails du profil
Informations personnelles :
Nom : Eric Willems
Âge : 30
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Services de proximité

Informations forums :
Inscription : février 2004
Messages : 895
Points : 1 065
Points : 1 065
Envoyer un message via MSN à SirDarken Envoyer un message via Skype™ à SirDarken
Ouhla mais je crois bien que c'est normal ton problème, dans select il a forcément une valeur, donc si tu test que ca valeur il y en as forcément une.

En gros dans ton select numéro 2 mais un item avec pour valeur aucun, et du test si la valeur équivaut pas à aucun.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
 
if ($btnMAJ!="" ){
	if(isset($_POST['valeur']) && $nbPERSON==$nbLIMIT){
	     $err=$message;
	}
	if(isset($_POST['valeur1'] != "aucun"){
               echo($_POST['valeur1']); // mets ca pour tester!
	  $req="update admin_societe set ";
             }
}
SirDarken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 15h43   #12
Membre du Club
 
Avatar de stomerfull
 
Inscription : septembre 2005
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 244
Points : 45
Points : 45
je te lance mon code comme ça jespere que ça aidera à le résoudre efficacement


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if ($btnMAJ!="")
{
	$traitement=true;
	if ($traitement==true)
	{	if ($name=="" || $mdpasse=="") {$erreur="erreur"; $traitement=false;}	}
 
	  if(!$valeur){$valeur=0;}
 	  if(!$valeur9){$valeur9=0;}
 
	    if($valeur==1  && $nbPERSON==$nbLIMIT)condition1
		 { 
	          $message="impossible";
		  $erreur=$message;
		 }
		  else
		  {
				$req="update table set ";
                   }
}
mon probleme c'est que la condition 1 est toujours vérifié.
et je ne trouve pas un autre condition pour passer dans $req

mon page est constitué de liste deroulante à valeur 0 ou 1 (oui ou non)

Si l'utilisateur modifie autres listes que $valeur, je ne sais pas comment faire le test (comment savoir que l'utilisateur n'a pas toucher à la liste déroulante $valeur pour que je puisse faire le test )
stomerfull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 19h22   #13
Modérateur
 
Avatar de SirDarken
 
Eric Willems
Développeur Web
Inscription : février 2004
Messages : 895
Détails du profil
Informations personnelles :
Nom : Eric Willems
Âge : 30
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Services de proximité

Informations forums :
Inscription : février 2004
Messages : 895
Points : 1 065
Points : 1 065
Envoyer un message via MSN à SirDarken Envoyer un message via Skype™ à SirDarken
Dans l'état ton code ne marchera pas!

1) tu marque condition1 en dur fait le en commentaire !! en mettant // devant.
2) tu as plein de $valeur différent, et je doit dire que je my perd.

Je my prendrai d'une autre façon moi.
Code :
1
2
3
4
5
6
7
8
9
10
11
 
if(isset($_POST['Submit'])){
	$valeur1 = $_POST['nom_du_select1'];
	$valeur2 = $_POST['nom_du_select2'];
	if($valeur1 == "tada"){
		echo('tada');
	}
	if($valeur1 == "aucun" && $valeur2 == "erreur"){
		echo('erreur');
	}
}
Peux tu parler de ton idée plutot que ton code car j'ai l'impression que là ta un gros soucis, et j'ai le vague sentiemnt qu'on vas dans le mur.
SirDarken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 10h29   #14
Membre du Club
 
Avatar de stomerfull
 
Inscription : septembre 2005
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 244
Points : 45
Points : 45
ok merci

ça a marché

merçi pour votre réponse
stomerfull est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h04.


 
 
 
 
Partenaires

Hébergement Web