bonjour,
je charge des données à partir d'un fichier xml en utilisant simpleXML.
le fcihier xml a la structure suivante:
Dans mon formulaire, j'affiche les pays par continent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22<?xml version="1.0" encoding="ISO8859-1"?> <data> <codepays code="AF"> <devise dev="AFA"> <langue val="fr"><continent>Asie</continent><pays>AFGHANISTAN</pays><monnaie>(-> AFN)</monnaie></langue> <langue val="en"><continent>Asia</continent><pays>AFGHANISTAN</pays><monnaie>(-> AFN)</monnaie></langue> </devise> </codepays> <codepays code="AF"> <devise dev="AFN"> <langue val="fr"><continent>Asie</continent><pays>AFGHANISTAN</pays><monnaie>Afghani</monnaie></langue> <langue val="en"><continent>Asia</continent><pays>AFGHANISTAN</pays><monnaie>Afghani</monnaie></langue> </devise> </codepays> <codepays code="ZA"> <devise dev="ZAR"> <langue val="fr"><continent>Afrique</continent><pays>AFRIQUE DU SUD</pays><monnaie>Rand</monnaie></langue> <langue val="en"><continent>Africa</continent><pays>SOUTH AFRICA</pays><monnaie>Rand</monnaie></langue> </devise> </codepays> </data>
Je voudrai trier la liste des pays par ordre alphabétique par continent.
je ne sais pas comment faire.
Le code de mon formulaire est le suivant :
quelqu'un aurait-il une solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php $lalangue=((isset($lalangue))?$lalangue:"fr"); //chargement du fichier xml une fois pour toutes les devises $xmlpays=simplexml_load_file($_SERVER['DOCUMENT_ROOT'].'/monnaiespays.xml'); $continent = array('Afrique', 'Amérique du Nord', 'Amérique du Sud', 'Asie', 'Europe', 'Océanie'); <form name="formulaire" method="post"> <p><input type="text" name="montant" class="montant_devise" value="<?php print($montant); ?>"></p> <p><select name="codepays1" class="select_devise"> <?php for ($i=0; $i<6; $i++) { print("<optgroup label=\"".$continent[$i]."\">"); foreach($xmlpays->codepays as $myvar) { $codepays = $myvar[@code]; foreach($myvar->children() as $devise) { $dev=(string)$devise[@dev]; foreach($devise->children() as $langue) { if(utf8_decode($langue[@val]) == $lalangue) { if(utf8_decode($langue->continent) == $continent[$i]) { print("<option value=\"".$codepays."\" ".(($codepays1==$codepays)?"selected=\"selected\"":"").">".$codepays." - ".utf8_decode($langue->pays)."</option>"); } } } } } print("</optgroup>"); } ?> </select></p> </p> </form>
merci
Partager