Bonjour,
Voila j'ai un site web à construire avec une base de donnée en XML
j'ai donc un fichier.xml contenant les vols en france
Exemple
J'ai ensuite un fichier xsl<racine>
<vols>
<Compagnie>Air France</Compagnie>
<VilleDepart>Ajaccio</VilleDepart>
<VilleDestination>Avignon</VilleDestination>
<HeureDepart>7h00</HeureDepart>
<HeureArrivee>8h00</HeureArrivee>
<Classe>3</Classe>
<Prix>50</Prix>
</vols>
<vols>
<Compagnie>Air France</Compagnie>
<VilleDepart>Ajaccio</VilleDepart>
<VilleDestination>Marseille</VilleDestination>
<HeureDepart>7h00</HeureDepart>
<HeureArrivee>8h00</HeureArrivee>
<Classe>1</Classe>
<Prix>150</Prix>
</vols>
<vols>
<Compagnie>Air France</Compagnie>
<VilleDepart>Toulouse</VilleDepart>
<VilleDestination>Marseille</VilleDestination>
<HeureDepart>7h00</HeureDepart>
<HeureArrivee>8h00</HeureArrivee>
<Classe>1</Classe>
<Prix>150</Prix>
</vols>
</racine>
Voila dans mon formulaire quand je change la valeur de la ville de depart le resultat est bon malheureusement lorsque je modifie le deuxième formulaire (VIlle destination) il supprime le resultat anterieur pour m'afficher seulement le resultat de la ville de destination<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlnssl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:param name="field"/>
<xsl:param name="order"/>
<xsl:param name="val"/>
<xsl:param name="par"/>
<table>
<xsl:choose>
<xsl:when test="$par='VilleDepart'">
<xsl:for-each select="vols[VilleDepart=$val]">
<xsl:sort select="*[name()=$field]" data-type="number" order="{$order}"/>
<tr height="30" class="ligne1">
<td width="15%"><div class="petit"><xsl:value-of select="VilleDepart"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="VilleDestination"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="Compagnie"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="HeureDepart"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="HeureArrivee"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="Classe"/></div></td>
<td width="10%"><div class="petitgras"><xsl:value-of select="Prix"/></div></td>
</tr>
</xsl:for-each>
</xsl:when>
<xsl:when test="$par='VilleDestination'">
<xsl:for-each select="vols[VilleDestination=$val]">
<xsl:sort select="*[name()=$field]" data-type="number" order="{$order}"/>
<tr height="30" class="ligne1">
<td width="15%"><div class="petit"><xsl:value-of select="VilleDepart"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="VilleDestination"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="Compagnie"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="HeureDepart"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="HeureArrivee"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="Classe"/></div></td>
<td width="10%"><div class="petitgras"><xsl:value-of select="Prix"/></div></td>
</tr>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$val = ''">
<xsl:for-each select="vols">
<xsl:sort select="*[name()=$field]" order="{$order}"/>
<tr height="30" class="ligne1">
<td width="15%"><div class="petit"><xsl:value-of select="VilleDepart"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="VilleDestination"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="Compagnie"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="HeureDepart"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="HeureArrivee"/></div></td>
<td width="15%"><div class="petit"><xsl:value-of select="Classe"/></div></td>
<td width="10%"><div class="petitgras"><xsl:value-of select="Prix"/></div></td>
</tr>
</xsl:for-each>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</table>
Et ma fonction modif dans mon index.html
<table border=0 width=100% height=100% align=center valign=top>
<tr>
<td width=40% height=70% align=left valign=top>
<div id="contenuBe">
<script type="text/javascript">
affichage('for_location.xml');
</script>
</div>
</td>
<td rowspan=2 width=60%>
<table width=100% height=100% align=center valign=top border="0">
<tr>
<td width=100% height=100% valign=top>
<div id="contenuMilieu">
<script type="text/javascript">
tri_init('location.xml','Type','ascending');
</script>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
et le formulaire :
<form>
<div class="ssTitreMiniBe">De:</div>
<select name="VilleD" class="inputHPaeroport" onchange="modif(this.value ,'VilleDepart')">
<option value="">Selectionner une ville de départ
<option value="Ajaccio">Ajaccio
<option value="Avignon">Avignon
<option value="Lille">Lille
<option value="Lyon">Lyon
<option value="Marseille">Marseille
<option value="Montpellier">Montpellier
<option value="Nantes">Nantes
<option value="Nice">Nice
<option value="Paris">Paris
<option value="Toulouse">Toulouse
</select>
<br>
<div class="ssTitreMiniBe">A:</div>
<select name="VilleA" class="inputHPaeroport" onchange="modif(this.value ,'VilleDestination')">
<option value="">Selectionner une ville d'arrivée
<option value="Ajaccio">Ajaccio
<option value="Avignon">Avignons
<option value="Lille">Lille
<option value="Lyon">Lyon
<option value="Marseille">Marseille
<option value="Montpellier">Montpellier
<option value="Nantes">Nantes
<option value="Nice">Nice
<option value="Paris">Paris
<option value="Toulouse">Toulouse
</select>
<br>
</form>
Voila je selectionne la ville d'ajaccio dans la liste de depart et il m'indique toutes les vols ou la ville de depart est ajaccio
Ensuite je modifie le formulaire de destination et je selectionne toulouse malheureusement la il m'affiche la liste ou les destination sont toulouse. (mais il ne considere plus les villes de depart qui sont egal a ajaccio)
J'ai besoin d'aide :'(
Partager