|
Invité de passage
 Patrick Inscription : janvier 2012 Messages : 8 Détails du profil  Informations personnelles : Nom :  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
|
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
|