Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
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 31/01/2012, 17h32   #1
Invité de passage
 
Homme Patrick
Inscription : janvier 2012
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : janvier 2012
Messages : 8
Points : 0
Points : 0
Par défaut Trie sur les souscategorie boitiers

bonjour,

voilà je souhaiterai effectuer un trie des souscategorie.
ce que je suis entrain d'essayer de faire a cette adresse, sauf que quand je clic sur la souscategorie, j'ai tout le catalogue qui s'affiche.
http://dinosaures.biz/test.php

extrait de mon fichier xml
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
<?xml version="1.0" encoding="ISO-8859-1"?>
<?DOCTYPE catalogue_informatique SYSTEM "catalogue.dtd"?>
<?xml-stylesheet type="text/xsl" href="tablehtml.xsl"?>
 
<catalogue_informatique date="05/01/2012 08:50:21" client="s.i@neuf.fr">
<product>
<categorie><![CDATA[BOITIERS]]></categorie>
<souscategorie><![CDATA[Boitiers PC]]></souscategorie>
<marque><![CDATA[GIGABYTE]]></marque>
<merchantid>29646</merchantid>
<modele><![CDATA[GIGABYTE  BOITIER GZ-MK01 BLACK GZ-MK1DBM-F00]]></modele> 
<ref>109480</ref>
<code_ean><![CDATA[4719331104290]]></code_ean>
<ref_constructeur><![CDATA[GZ-MK1DBM-F00]]></ref_constructeur>
<creation>14/01/2011</creation>
<descriptif_court><![CDATA[Gigabyte GZ-MK01 - Tour - micro ATX - pas d'alimentation - noir - USB/Audio]]></descriptif_court>
<descriptif><![CDATA[Description du produit Gigabyte GZ-MK01 - tour - micro ATX 
Facteur de forme Tour 
Dimensions (LxPxH) 18 cm x 43.5 cm x 36 cm 
Poids 3.9 kg 
Couleur Noir 
Connecteurs E/S 2 x Hi-Speed USB 
2 x audio 
Cartes mère prises en charge microATX 
Fonctionnalités du boîtier système TAC2.0 (Thermally advantaged chassis version 2.0) 
Périphérique d'alimentation Pas d'alimentation 
]]></descriptif>
<prix base="EUR HT">25.61</prix>
<taxes_gouv base="EUR HT">0</taxes_gouv>
<taux_tva>19.6</taux_tva>
<net_ttc base="EUR TTC">30.63</net_ttc>
<fraislivraison base="EUR TTC">9.90</fraislivraison>
<en_stock>oui</en_stock>
<stock_actuel>83</stock_actuel>
<stock_en_cours_livraison>0</stock_en_cours_livraison>
<disponibilite>31/01/2012</disponibilite>
<photo><![CDATA[http://www.rs-distribution.fr/images_produit/00029646.jpg]]></photo>
<link><![CDATA[http://www.rs-distribution.fr/produit.php?PDT_ID=29646]]></link>
<poids base="KG">4.27</poids>
</product>
<product>
<categorie><![CDATA[BOITIERS]]></categorie>
<souscategorie><![CDATA[Boitiers PC]]></souscategorie>
<marque><![CDATA[GIGABYTE]]></marque>
<merchantid>29648</merchantid>
<modele><![CDATA[GIGABYTE BOITIER SETTO II 142 GZ-E2BSDX-M00]]></modele> 
<ref>109481</ref>
<code_ean><![CDATA[4719331104474]]></code_ean>
<ref_constructeur><![CDATA[GZ-E2BSDX-M00]]></ref_constructeur>
<creation>14/01/2011</creation>
<descriptif_court><![CDATA[Gigabyte Setto II 142 - Tour - ATX - pas d'alimentation - noir - USB/Audio]]></descriptif_court>
<descriptif><![CDATA[Description du produit Gigabyte Setto II 142 tour - ATX 
Facteur de forme Tour 
Dimensions (LxPxH) 18.5 cm x 48 cm x 41 cm 
Poids 5.8 kg 
Couleur Noir 
Connecteurs E/S 2 x Hi-Speed USB 
2 x audio 
Cartes mère prises en charge ATX, microATX 
Fonctionnalités du boîtier système Baies pour lecteur sans vis, canal de la soufflante, Chassis Air Guide (CAG) 1.1, trous passe-câble 
Périphérique d'alimentation Pas d'alimentation 
]]></descriptif>
<prix base="EUR HT">39.56</prix>
<taxes_gouv base="EUR HT">0</taxes_gouv>
<taux_tva>19.6</taux_tva>
<net_ttc base="EUR TTC">47.31</net_ttc>
<fraislivraison base="EUR TTC">9.90</fraislivraison>
<en_stock>oui</en_stock>
<stock_actuel>2</stock_actuel>
<stock_en_cours_livraison>0</stock_en_cours_livraison>
<disponibilite>31/01/2012</disponibilite>
<photo><![CDATA[http://www.rs-distribution.fr/images_produit/00029648.jpg]]></photo>
<link><![CDATA[http://www.rs-distribution.fr/produit.php?PDT_ID=29648]]></link>
<poids base="KG">6.8</poids>
</product>
<product>
<categorie><![CDATA[BOITIERS]]></categorie>
<souscategorie><![CDATA[Boitiers PC]]></souscategorie>
<marque><![CDATA[GIGABYTE]]></marque>
<merchantid>33747</merchantid>
<modele><![CDATA[GIGABYTE BOITIER SETTO 1020 BLACK GZ-AX2CBS-SNB]]></modele> 
<ref>109482</ref>
<code_ean><![CDATA[4719331183448]]></code_ean>
<ref_constructeur><![CDATA[GZ-AXICBS-SNB]]></ref_constructeur>
<creation>22/07/2011</creation>
<descriptif_court><![CDATA[Gigabyte Setto 1000 GZ-AX1CBS-SNB - Tour - ATX - pas d'alimentation - noir - USB/FireWire/Audio]]></descriptif_court>
<descriptif><![CDATA[Description du produit Gigabyte Setto 1000 GZ-AX1CBS-SNB - tour - ATX 
Facteur de forme Tour 
Dimensions (LxPxH) 18.5 cm x 48 cm x 41 cm 
Couleur Noir 
Connecteurs E/S 2 x Hi-Speed USB 
2 x audio 
1 x IEEE 1394 (FireWire) 
Nombre de ventilateurs installés 2 
Cartes mère prises en charge ATX, microATX 
Fonctionnalités du boîtier système Dispositifs de retenue de carte PCI sans vis, baies pour lecteur sans vis, canal de la soufflante, Chassis Air Guide (CAG) 1.1 
]]></descriptif>
<prix base="EUR HT">44.37</prix>
<taxes_gouv base="EUR HT">0</taxes_gouv>
<taux_tva>19.6</taux_tva>
<net_ttc base="EUR TTC">53.07</net_ttc>
<fraislivraison base="EUR TTC">9.90</fraislivraison>
<en_stock>oui</en_stock>
<stock_actuel>6</stock_actuel>
<stock_en_cours_livraison>0</stock_en_cours_livraison>
<disponibilite>31/01/2012</disponibilite>
<photo><![CDATA[http://www.rs-distribution.fr/images_produit/00033747.jpg]]></photo>
<link><![CDATA[http://www.rs-distribution.fr/produit.php?PDT_ID=33747]]></link>
<poids base="KG">5.6</poids>
</product>
<product>
<categorie><![CDATA[BOITIERS]]></categorie>
<souscategorie><![CDATA[Boitiers PC]]></souscategorie>
<marque><![CDATA[GIGABYTE]]></marque>
<merchantid>33748</merchantid>
<modele><![CDATA[GIGABYTE BOITIER SETTO 1024 GZ-AXBS11-CNB]]></modele> 
<ref>109483</ref>
<code_ean><![CDATA[4719331193003]]></code_ean>
<ref_constructeur><![CDATA[GZ-AXBS11-CNB]]></ref_constructeur>
<creation>22/07/2011</creation>
<descriptif_court><![CDATA[Gigabyte Setto 1024 GZ-AXBS11-CNB - Tour - ATX - noir - USB/Audio]]></descriptif_court>
<descriptif><![CDATA[Description du produit Gigabyte Setto 1024 GZ-AXBS11-CNB - tour - ATX 
Facteur de forme Tour 
Dimensions (LxPxH) 20.2 cm x 50.3 cm x 42.5 cm 
Poids 5.7 kg 
Couleur Noir 
Connecteurs E/S 2 x Hi-Speed USB 
1 x audio 
Nombre de ventilateurs installés 2 
Cartes mère prises en charge ATX, microATX 
Fonctionnalités du boîtier système Dispositifs de retenue de carte PCI sans vis, baies pour lecteur sans vis, canal de la soufflante, Chassis Air Guide (CAG) 1.1 
]]></descriptif>
<prix base="EUR HT">44.37</prix>
<taxes_gouv base="EUR HT">0</taxes_gouv>
<taux_tva>19.6</taux_tva>
<net_ttc base="EUR TTC">53.07</net_ttc>
<fraislivraison base="EUR TTC">9.90</fraislivraison>
<en_stock>oui</en_stock>
<stock_actuel>4</stock_actuel>
<stock_en_cours_livraison>0</stock_en_cours_livraison>
<disponibilite>31/01/2012</disponibilite>
<photo><![CDATA[http://www.rs-distribution.fr/images_produit/00033748.jpg]]></photo>
<link><![CDATA[http://www.rs-distribution.fr/produit.php?PDT_ID=33748]]></link>
<poids base="KG">6.3</poids>
</product>
<product>
<categorie><![CDATA[BOITIERS]]></categorie>
<souscategorie><![CDATA[Boitiers PC]]></souscategorie>
<marque><![CDATA[GIGABYTE]]></marque>
<merchantid>33749</merchantid>
<modele><![CDATA[GIGABYTE BOITIER SETTO 1200 GZ-AXBS12-CNB]]></modele> 
<ref>109484</ref>
<code_ean><![CDATA[4719331193010]]></code_ean>
<ref_constructeur><![CDATA[GZ-AXBS12-CNB]]></ref_constructeur>
<creation>22/07/2011</creation>
<descriptif_court><![CDATA[Gigabyte Setto 1200 GZ-AXBS12-CNB - Tour - ATX - pas d'alimentation - noir - USB/Audio]]></descriptif_court>
<descriptif><![CDATA[Description du produit Gigabyte Setto 1200 GZ-AXBS12-CNB - tour - ATX 
Facteur de forme Tour 
Dimensions (LxPxH) 20.5 cm x 51 cm x 43.5 cm 
Poids 5.9 kg 
Couleur Noir 
Connecteurs E/S 2 x Hi-Speed USB 
2 x audio 
Nombre de ventilateurs installés 2 
Cartes mère prises en charge ATX, microATX 
Fonctionnalités du boîtier système Canal de la soufflante, Chassis Air Guide (CAG) 1.1 
Périphérique d'alimentation Pas d'alimentation 
]]></descriptif>
<prix base="EUR HT">43.13</prix>
<taxes_gouv base="EUR HT">0</taxes_gouv>
<taux_tva>19.6</taux_tva>
<net_ttc base="EUR TTC">51.58</net_ttc>
<fraislivraison base="EUR TTC">9.90</fraislivraison>
<en_stock>oui</en_stock>
<stock_actuel>4</stock_actuel>
<stock_en_cours_livraison>0</stock_en_cours_livraison>
<disponibilite>31/01/2012</disponibilite>
<photo><![CDATA[http://www.rs-distribution.fr/images_produit/00033749.jpg]]></photo>
<link><![CDATA[http://www.rs-distribution.fr/produit.php?PDT_ID=33749]]></link>
<poids base="KG">5.85</poids>
</product>
<product>
<categorie><![CDATA[BOITIERS]]></categorie>
<souscategorie><![CDATA[Alimentation pour boitier]]></souscategorie>
<marque><![CDATA[GIGABYTE]]></marque>
<merchantid>21754</merchantid>
<modele><![CDATA[GIGABYTE SuperB 460 GE-R460-V1 - Alim. 460W]]></modele> 
<ref>109547</ref>
<code_ean/>
<ref_constructeur/>
<creation>26/01/2010</creation>
<descriptif_court><![CDATA[Alimentation ( interne ) - ATX12V 2.3 - CA 200-240 V - 460 Watt - PFC active]]></descriptif_court>
<descriptif><![CDATA[
Performante, efficace et stable, l'alimentation Gigabyte SUPERB 460W bénéficie d'une qualité de fabrication irréprochable et sera parfaitement adaptée pour équiper les configurations de dernière génération. Connectique complète, fonctionnement silencieux, haute capacité de dissipation thermique, circuit Active PFC, ventilateur 120 mm, protection contre les surtensions sont au menu pour des résultats probants en toute circonstance.
 
  Puissance de l'alimentation : *460 Watt(s)
 
  Norme alimentation : *ATX 2.2
 
  Connecteurs : *+12V (Alimentation P4), 4x Alimentation Serial ATA, ATX 24 Broches, 2x Disquette (Molex 4 Broches Femelle), 4x Molex (4 broches) Femelle, PCI Express 6 broches
 
  Modulaire : *non
 
  Silencieux(se) : *oui
 
  Multi-GPU : *Aucun
 
  Taille de ventilateur : *120 mm
 
  Certification 80 PLUS : *non
 
]]></descriptif>
<prix base="EUR HT">31.86</prix>
<taxes_gouv base="EUR HT">0</taxes_gouv>
<taux_tva>19.6</taux_tva>
<net_ttc base="EUR TTC">38.10</net_ttc>
<fraislivraison base="EUR TTC">9.90</fraislivraison>
<en_stock>oui</en_stock>
<stock_actuel>225</stock_actuel>
<stock_en_cours_livraison>0</stock_en_cours_livraison>
<disponibilite>31/01/2012</disponibilite>
<photo><![CDATA[http://www.rs-distribution.fr/images_produit/00021754.jpg]]></photo>
<link><![CDATA[http://www.rs-distribution.fr/produit.php?PDT_ID=21754]]></link>
<poids base="KG">1.82</poids>
</product>
</catalogue_informatique>
et voilà le code que j'ai du completement foiré.
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
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>Test avec sélection de la catégorie</title>
		</head>
	<body>	
<?php
	// On récupère la code de la souscatégorie sélectionnée :
	if (isset($_POST["selBOITIERS"]))
		$BOITIERS = $_POST["selBOITIERS"];
	else
		$BOITIERS = "";
 
	function addOptionBOITIERS($value, $text) {
		// Cette fonction permet d'ajouter un élément à une Combo
		// $value : valeur de l'élément à ajouter
		// $text  : Texte (valeur affichée) de l'élément
 
		// On référence la variable globale $categorie, afin de pouvoir
		// l'utiliser à l'intérieur de la fonction
		global $BOITIERS;	
 
		// On ajoute le texte <option value="..."
		echo '<option value="'.$value.'"';
 
		// Si l'élément à ajouter correspond à la catégorie sélectionnée, on ajoute
		// selected="selected", afin de maintenir l'état sélectionné :
		if ($value == $BOITIERS)
			echo ' selected="selected"';
 
		// Et on termine la balise option en y ajoutant le texte :
		echo '>'.$text."</option>";
	}
 
	function getProductsHtml()	{
		// Cette fonction permet d'afficher le catalogue XML, en appliquant
		// une feuille de style XSLT
 
		// On référence la variable globale $souscategorie, afin de pouvoir
		// l'utiliser à l'intérieur de la fonction
		global $BOITIERS;	
 
		// Si aucune catégorie n'est sélectionnée, on renvoie une chaine vide... 
		// (inutile de traiter le XSL...)
		if ($BOITIERS == "") return "";
 
		// On définit un nouveau processeur XSLT :
		$xsltProc = new XSLTProcessor();
 
		// On charge le catalogue
		$xml = new DOMDocument();
		$xml->load("catalogue_rsd.xml");	// URL du fichier XML
 
		// On charge la feuille de style
		$xsl = new DOMDocument();
		$xsl->load("tablehtml.xsl");	// URL du fichier XSL
 
		// On fournit la feuille de style au processeur XSLT :
		$xsltProc->importStylesheet($xsl);
 
		// On passe la catégorie en paramètre. myCategory est définie dans la feuille de 
		// style, on lui donne la valeur de la catégorie sélectionnée :
		$xsltProc->setParameter("", "myCategory", $BOITIERS);
 
		// Et on applique la feuille de style au catalogue :
		$html = $xsltProc->transformToXML($xml);
 
		return $html;
 
	}
 
?>		
 
 
		<form name="formulaire_test" method="POST">
			Catégorie : <select id="selBOITIERS" name="selBOITIERS" onChange="this.form.submit();">
			<?php
				addOptionBOITIERS("", "BOITIER");
				addOptionBOITIERS("-", "");	
				addOptionBOITIERS("Accessoires pour alimentation", "Accessoires pour alimentation");
				addOptionBOITIERS("Alimentation pour boitier", "Alimentation pour boitier");
				addOptionBOITIERS("Boitier montage en rack", "Boitier montage en rack");
				addOptionBOITIERS("Boitiers PC", "Boitiers PC");
				addOptionBOITIERS("Ventilateur pour boitier", "Ventilateur pour boitier");
 
			?>				
			</select>
		</form>
 
		<div>
			<?php echo getProductsHtml(); ?>
		</div>
merci pour votre aide
xez7082 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 11h25.


 
 
 
 
Partenaires

Hébergement Web