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 : Tout sélectionner
<?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="[email protected]">
<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><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