Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 16/01/2007, 21h06   #1
Invité de passage
 
Inscription : janvier 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 5
Points : 0
Points : 0
Par défaut [Conception] Recherche

Bonjour à tous,

J'ai un petit problème dans une page php, je génère un tableau dynamique en fonction des choix faites par l'utilisateur dans de combobox. Il y a 3 Combox donc 1 obligatoire pour faire afficher le tableau. J'ai ajouté aussi une recherche par code d'élément dans ma base sql. Le problème est que quand j'utilise la recherche mes combobox son inutilisable, car la recherche reste en place et je dois sortir de la page et revenir pour réutiliser l'affichage du tableau. Comment dois je faire pour régler tout sa merci.

DNadz
J'utilise DreamWeaver et Easyphp pour faire mes tests.
DNadz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2007, 22h56   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
qu'est ce que tu veux dire par "la recherche reste en place" ?
donne nous plus de détails. est ce que tu peux nous donner l'URL où on peut voir le problème ?
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2007, 17h10   #3
Invité de passage
 
Inscription : janvier 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 5
Points : 0
Points : 0
Par défaut Suite Formulaire Recherche

Je ne peux pas vous donner un lien car le site est en local,

Ce que je veux dire par la recherche reste en place, si je change une sélection dans mes combobox, sa ne fais rien au rafraichissement de la page, le post fait comme si j'avais utiliser ma recherche par code et non comme si j'utilisais mes combobox .
DNadz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2007, 17h17   #4
Membre éclairé
 
Avatar de Space Cowboy
 
Inscription : avril 2005
Messages : 495
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 495
Points : 306
Points : 306
Si c'est juste une page, tu peut copier/coller code. Car ce que tu décris n'est pour moi pas très clair.
Space Cowboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 15h09   #5
Invité de passage
 
Inscription : janvier 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 5
Points : 0
Points : 0
Par défaut Formulaire - Recherche 3

Voici le code de la page,

ya des includes, mais je ne crois pas que sa soit nécessaire à la compréhension. Dans le fond, jai deux facon de faire afficher les info dans la page. La première est par des comboxbox, je sélectionne un type de produit, en suite une marques et le tableau s'affiche. Mais je peux aussi rechercher le produit avec son code en sélectionnant sont type et en recherchant le code. Quand on fait sa c'est seulement la ligne du type de produit sélectionner et le produit relié au code qui s'affiche. Seulement, mon problème est quand j'utilise cette dernière je dois quitter la page pour pouvoir réutiliser tout mes autres combobox parce qu'il y a juste la ligne de la recherche qui s'affiche.

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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
<?php 
	/*- Connection à la base de données -*/
	include("includes/bd_connect.php");
	$link = connect();
	/*-----------------------------------*/
	session_start();
	if ($_SESSION['langue'] == 'fr')
	{
		include("includes/texte_fr.php");
	}
	else
	{
		include("includes/texte_en.php");
	}
	//Variable d'intervalle servant à faire afficher les bons champs et les bonnes pages selon les 
	//diférents produits sélectionnés
	//L'intervalle pour inclure la page prod_cartouches
	$inc_Page1[0] = 5; //l'index 0 indique la cardinalité du array
	$inc_Page1[1] = 1; //les autres index sont les no_type qui doivent inclure la page
	$inc_Page1[2] = 2;
	$inc_Page1[3] = 4;
	$inc_Page1[4] = 5;
	$inc_Page1[5] = 6;
 
	//L'intervalle pour inclure la page prod_autres
	$inc_Page2[0] = 5;
	$inc_Page2[1] = 7;
	$inc_Page2[2] = 8;
	$inc_Page2[3] = 9;
	$inc_Page2[4] = 10;
	$inc_Page2[5] = 14;
 
	//L'intervalle pour inclure la page prod_imprimantes
	$inc_Page3[0] = 3;
	$inc_Page3[1] = 11;
	$inc_Page3[2] = 12;
	$inc_Page3[3] = 13;	
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
 <HTML xmlns="http://www.w3.org/1999/xhtml">
 <HEAD>
 <TITLE><?php echo $barreTitre[6]; ?></TITLE>
 <link href="css/style.css" rel="stylesheet" media="screen" type="text/css">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
 <style type="text/css">
	<!--
	body 
	{
		background-image: url(images/bg.jpg);
	}
 
	-->
</style>
 
<script language="javascript" type="text/javascript">
 
function Soumettre()
{
	document.recherche_prod.submit();         
}
 
 
</script>
</HEAD>
 <BODY >
 
 <div id="outer_border">
 <div id="container">
   <div id="side_left">
     <div id="top_left"></div>
 	<div id="pic_side"></div>
	<div id="line_left"></div>
   </div>
   <div id="left">
 	<div id="top_strip"></div>
 
 	<div class="noborder" id="sitelogo"><img border="0" src="images/logo.jpg"></div>
 	<div id="menu">
	<?Php
		for ($i = 0; $i < $nbElemMenu; $i++)
		{
			echo"<a href='".$menu[$i][1]."'><b>".$menu[$i][0]."</a>";
		}
 
	$query = "SELECT * FROM produits ORDER BY no_prod";
	$result = mysql_query($query) or die('Error, select query failed - 1');
	$nb_Prod = mysql_num_rows($result);
	$i = 1;
	$prod_lang = 'nom_prod_'.$doc;
	while ($list = mysql_fetch_array($result))
	{
		$lst_produits[$i][0] = $list['no_prod'];
		$lst_produits[$i][1] = $list[$prod_lang];
		$i++; 				
	}
 
	$type_select = 0;
	if(isset($_POST['s_type']))
	{
		$type_select = $_POST['s_type'];
	}
	$marque_select = 1;
	if(isset($_POST['s_marques']))
	{
		$marque_select = $_POST['s_marques'];
	}
	$couleur_select = 1;
	if(isset($_POST['s_couleur']))
	{
		$couleur_select = $_POST['s_couleur'];
	}
	$typecart_select = 0;
	if(isset($_POST['s_typec']))
	{
		$typecart_select = $_POST['s_typec'];
	}	
	$mot_recherche = "";
	if(isset($_POST['t_code']))
	{
		$mot_recherche = $_POST['t_code'];	
	}		
	$aff_marques = "";
	$aff_couleur = "";
	$aff_typecar = "";
	$aff_recherche = "";
 
	if (($type_select != 0) and (determinerProd($inc_Page1,$type_select) == 1))
	{
		$aff_recherche = afficherRecherche($mot_recherche,$prod_titreMenu[4]);
		$aff_typecar = "<tr><td>".$prod_titreMenu[3].":</td></tr><tr><td>
				<select name='s_typec' id='s_typec' onChange='Soumettre();'>";
				$i = 0;
				$status = "";  
				while($i < $nb_prod_choix) 
				{
					if ($i == $typecart_select)
					{
						$status = "SELECTED";
					}
					else
					{
						$status = ""; 
					}
					$aff_typecar .= "<option value='".$i."' ".$status.">".$prod_choix_typecart[$i]."</option>";
					$i++; 
				} 		
				$aff_typecar .= "</select></td></tr>";	
		if ($type_select != 4)
		{
			$query = "SELECT DISTINCT(marques) FROM cartouches WHERE produit_FK = '".$type_select."' ORDER BY marques";
		}
		else
		{
			$query = "SELECT DISTINCT(marques) FROM cartouches WHERE produit_FK = '2' and fax = 'oui' ORDER BY marques";
		}
		$info_marque = creerListeChoix($prod_titreMenu[1], 's_marques', $query,'marques', $marque_select);
		$lst_marques = $info_marque[1];
		$aff_marques = $info_marque[0];
		if ($marque_select > 0)
		{
			$coul_lang = 'couleur_'.$doc; 
			if ($type_select != 4)
			{
				$query = "SELECT DISTINCT($coul_lang) FROM cartouches WHERE produit_FK = '".$type_select."' and marques='".$lst_marques[$marque_select]."'";
			}
			else
			{
				$query = "SELECT DISTINCT($coul_lang) FROM cartouches WHERE produit_FK = '2' and marques='".$lst_marques[$marque_select]."' and fax = 'oui'";
			}
			$info_couleur = creerListeChoix($prod_titreMenu[2], 's_couleur', $query, $coul_lang, 1);
			$lst_couleurs = $info_couleur[1];
			$aff_couleur = $info_couleur[0];
		}
 
	}
	elseif(($type_select != 0)&&($type_select == 11))
	{
		$query = "SELECT DISTINCT(marques_FK) FROM piece ORDER BY marques_FK";
		$info_marque = creerListeChoix($prod_titreMenu[1], 's_marques', $query,'marques_FK', $marque_select);
		$lst_marques = $info_marque[1];
		$aff_marques = $info_marque[0];	
		$aff_recherche = afficherRecherche($mot_recherche,$prod_titreMenu[4]);
	}
	elseif(($type_select != 0)&&($type_select == 13))
	{
		$query = "SELECT DISTINCT(marques_FK) FROM kit_maintenance ORDER BY marques_FK";
		$info_marque =creerListeChoix($prod_titreMenu[1], 's_marques', $query,'marques_FK', $marque_select);
		$lst_marques = $info_marque[1];
		$aff_marques = $info_marque[0];
 
		$aff_recherche = afficherRecherche($mot_recherche,$prod_titreMenu[4]);
	}
 
	echo "<form name='recherche_prod' name='recherche_prod' action='produits.php' method='post'>
	<b><font color='#FFCC00' size='3'>
	<table align='center'>
			<tr><td>".$prod_titreMenu[0].":</td></tr>
			<tr><td>
			<select name='s_type' id='s_type' onChange='Soumettre();' style='FONT-SIZE: xx-small' >
			<option value='0'>--------------</option>";
 
					$i = 1;  
					while($i <= $nb_Prod) 
    				{ 
						 echo"<option value='".$lst_produits[$i][0]."' "; if($lst_produits[$i][0] == $type_select) echo "SELECTED"; echo">".$lst_produits[$i][1]."</option>";
						$i++; 
    				} 
 
			echo "</select></td></tr>";
 
			echo $aff_marques;
			if($type_select != 0)
			{
				if(determinerProd($inc_Page1,$type_select) == 1)
				{
					echo $aff_couleur;
					echo $aff_typecar;
				}
			}
			echo $aff_recherche;
 
			?> 					
	</table>
	</b></font>
	</form>
 	</div>
 
   </div>
   <div id="right">
 	<div id="horiz">
	<?php echo "<a href='".$nav_haut[0][1]."'><b>".$nav_haut[0][0]."</b></a> | <a href='".$nav_haut[1][1]."'><b>".$nav_haut[1][0]."</b></a>"; ?>
 
	</div>
 	<div id="banniere"></div>
 
 	<div id="horiz">
		<?php echo "<a href='".$nav_bas[0][1]."'><b>".$nav_bas[0][0]."</b></a> | <a href='".$nav_bas[1][1]."'><b>".$nav_bas[1][0]."</b></a> | <a href='".$nav_bas[2][1]."'><b>".$nav_bas[2][0]."</b></a>"; ?>
 	</div>
 	<div id="pagebody_outer">
 	<div id="pagebody">
	<div id="ban_titre"><?Php echo "<img border='0' src='images/".$doc."/t_produits.jpg'>"; ?></div>
 
 <TABLE id=main1  cellSpacing=0 cellPadding=0 width="100%"  border=0>
 <TBODY >
 <TR>
 <TD>
  <?PHP
 
	echo $prod_instruction;
	if($type_select != 0)
	{
		if (determinerProd($inc_Page1,$type_select) == 1)
		{
			include("prod_cartouches.php");
		}
		elseif  (determinerProd($inc_Page2,$type_select) == 1)
		{
			include("prod_tab_autres.php");
		}
		elseif  (determinerProd($inc_Page3,$type_select) == 1)
		{
			include("prod_imprimantes.php");
		}
	}
	?> <a href="javascript: Soumettre();"alt='Connecter'>Test</a> <?
	function creerListeChoix($titre, $comp_id, $requete, $champ, $selection)
	{
		$result = mysql_query($requete) or die('Error, select query failed - 1');
		$nb = mysql_num_rows($result);
		$i = 1;
		while ($list = mysql_fetch_array($result))
		{
			$liste[$i] = $list[$champ];
			//echo $liste[$i];
			$i++; 				
		}		
		$aff_compo = "<tr><td>".$titre.":</td></tr><tr><td><select name='".$comp_id."' id='".$comp_id."' onChange='Soumettre();'>";
		$i = 1;
		$status = "";
		if  ($selection > $nb)
		{
			$selection = 1;
		}  
		while($i <= $nb) 
		{
			if ($i == $selection)
			{
				$status = "SELECTED";
			}
			else
			{
				$status = ""; 
			}
			$aff_compo .= "<option value='".$i."' ".$status.">".$liste[$i]."</option>";
			$i++; 
		} 		
 
		$aff_compo .= "</select></td></tr>";
		$info[0] = $aff_compo;
		$info[1] = $liste;
		return $info;
	}
 
	function afficherRecherche($motRecherche,$titre)
	{
		return	"<tr><td><br></td></tr>
				<tr><td>".$titre.":</td></tr>
				<tr><td><input name='t_code' type='text' size='20' maxlength='15' value='".$motRecherche."'></td></tr>
				<tr><td><input name='rechercher' type='button' value='Rechercher' onClick='Soumettre();'></td></tr>";
	}
 
	function determinerProd($inc_Page,$selection)
	{
		$rep = 0;
		for($i = 1; $i <= $inc_Page[0]; $i++)
		{
			if ($selection == $inc_Page[$i])
			{
				$rep = 1;
			}
		}
		return $rep;
	}	
 ?>	
	 </table>
<TD width=10></TD>
 
 <P class=noborder align=center><?Php echo "".$contact_texte."<A href='".$contact_lien."'>".$contact_lbl."</A>"; ?> </P>
 
 	</div>
 	</div>
   </div>
   <div id="bottom">
     <div id="bot_left"></div>
 	<div id="bot_strip"></div>
 	<div id="bot_right"><span><?PHP echo $protection ?></span></div>
   </div>
 
 </div>
 </div>
 <br>
</BODY>
 </HTML>
 <?php 
	/*- Déconnection de la base de données -*/
	disconnect($link); 
?>
DNadz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 15h33   #6
Membre actif
 
Inscription : août 2002
Messages : 194
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 194
Points : 194
Points : 194
Envoyer un message via MSN à Léortien
Citation:
Envoyé par DNadz
Voici le code de la page,

ya des includes, mais je ne crois pas que sa soit nécessaire à la compréhension. Dans le fond, jai deux facon de faire afficher les info dans la page. La première est par des comboxbox, je sélectionne un type de produit, en suite une marques et le tableau s'affiche. Mais je peux aussi rechercher le produit avec son code en sélectionnant sont type et en recherchant le code. Quand on fait sa c'est seulement la ligne du type de produit sélectionner et le produit relié au code qui s'affiche. Seulement, mon problème est quand j'utilise cette dernière je dois quitter la page pour pouvoir réutiliser tout mes autres combobox parce qu'il y a juste la ligne de la recherche qui s'affiche.
perso j'aurai préféré juste en html les deux cas pour mieux comprendre :/

tu ne peux pas renvoyer dans les combobox les résultats de la recherche?
(j'avoue je suis un peu perdu et du code brut long comme ça ça me décourage)
Léortien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 16h36   #7
Invité de passage
 
Inscription : janvier 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 5
Points : 0
Points : 0
Par défaut Suite

Je crois que je vais devoir me débrouiller seul parce que j'arrive pas a vous faire comprendre ce que je veux dire

merci Quand meme
DNadz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 16h51   #8
Futur Membre du Club
 
Webmaster
Inscription : mars 2005
Messages : 40
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : mars 2005
Messages : 40
Points : 16
Points : 16
Envoyer un message via MSN à Sorcier157
Est ce que tu utilises des variables de session?

Sinon tu peut faire un select du genre

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<select name="nom_select">
     <option><?php echo ton_option_selectionnée; ?></option>
<?php		
	foreach(ton_tableau_de_produits)
	{
?>
	<option><?php echo tes_autres_options*; ?></option>
<?php	
	}
?>
</select>
*y compris donc l'option que tu as sélectionnée (tu la verra donc 2 fois)

PS : ton_tableau_de_produits est le résultat d'une requete préalable ou d'un tableau construit par tes soins .
Sorcier157 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 17h11   #9
Invité de passage
 
Inscription : janvier 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 5
Points : 0
Points : 0
Je vais tenté de réexpliquer le prob.

Jai 4 combox qui me permettre de spécifié ce que je veux faire afficher dans mes tableau dynamique. Le premier doit être sélectionner pour utiliser les autres et pour utiliser la recherche. Plus je sélectionne dans chacun des comboxbox plus c'est précis ce qui s'affiche dans les tableau. Sauf que l'autre que j'utilise la recherche dans mon textbox, il affiche le produits et ses infos qui correspont au code de produits entrée dans le champs de recherche.

À partir de ce moment la il est impossible de réutiliser mes autres combobox parce que peut importe ce que je fais ce la ligne du produits que j'ai recherche plutot qui apparait dans mon tableau. Je dois donc quitter la page et ensuite revenir pour recommencer à utiliser mes combobox.

Espérons que j'ai été assez claire sinon jai vraiment pu de mot pour expliquer.

merci!!
DNadz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h58.


 
 
 
 
Partenaires

Hébergement Web