Poster une réponse à un sujet: [JS]
Attention, ce sujet est un sujet ancien (4915 jours sans réponse)
Gras [b]Texte[/b] Italique [i]Italique[/i] Souligné [u]Souligné[/u] Barré [strike]Barré[/strike]
Courriel [email=nobody@nobody.org]Nom[/email] Lien [url=http://www.website.com]Texte[/url] Ancre [anchor]Nom[/anchor] Image [img]http://www.website.com/image.jpg[/img] Insérer une image en provenance du site
Aligné à gauche [align=left]Texte[/align] Centré [align=center]Texte[/align] Aligné à droite [align=right]Texte[/align] Toute la largeur [align=justify]Texte[/text]
Couleur [color=#000000]Text[/color] Mise en forme [highlight=pascal]Texte[/highlight] Widgets Emoticons :code: [:code] Convertisseur HTML vers BBCode Convertisseur Word vers BBCode
Prévisualisation Vérification de l'orthographe

Copier Coller Couper Tout sélectionner
Tout effacer Insérer la date Insérer l'heure Insérer la date et heure Insérer votre IP
Liste [list=square][item]BlaBla[/item][/list] Liste Numérotée [list=decimal][item]BlaBla[/item][/list]
Citation [quote=name]Texte[/quote] Spoiler [spoiler]James est le meurtrier![/spoiler]
Tout en majuscules [uppercase]Texte[/uppercase] Tout en minuscules [lowercase]Texte[/lowercase] l33t [l33t]Je suis un nerd[/l33t] Texte en indice [sub]Texte[/sub] Texte en exposant [sup]Texte[/sup] Taille du texte [size=8]Texte[/size]
 
Tang
Finalement il a opté pour ceci (apparemment plus efficace*) :
  1. <script> 
  2.     init_map('map') ; 
  3.     <?php 
  4.     if ($handle = opendir($dir)) { 
  5.         $tab = array() ; 
  6.         while (false !== ($file = readdir($handle))) { 
  7.             if ( is_file("$dir/$file") ) 
  8.                 $tab[] = $file ; 
  9.         } 
  10.         closedir($handle); 
  11.     } 
  12.     sort($tab) ; 
  13.      
  14.     foreach ( $tab as $file ) { 
  15.         $fileName = str_replace('.gpx','',$file) ; 
  16.         echo "\t trace_gpx('$dir/$file','$fileName') ; \n" ; 
  17.     } 
  18.      
  19.     ?> 
  20. </script>


*"[...]ça serait plus efficace d'écrire direct les appels trace_gpx dans
le traces.html (à mettre en php du coup) que de faire un appel $.ajax"

Encore merci à vous.
Tang
De rien :cupra: Mais ce ne serait pas plus simple qu'il s'inscrive sur le site ? :oh: C'est gratuit :petrus:


En fait ils sont sur le départ pour 14 mois et ont donc pas mal de chose à faire, donc je me suis occupé de "régler" ce point là.
ovh
De rien :cupra: Mais ce ne serait pas plus simple qu'il s'inscrive sur le site ? :oh: C'est gratuit :petrus:
Tang

MA-GNI-FIQUE!!!!!!!!!!
Deuxième solution (1ère pas testée).

Merci merci merci!
Tu transmettras!
Tang
Ah ben je sens qu'il va être ravi...

Un grand merci, j'étais sûr que par ici une solution serait trouvée.
ovh
Testé et approuvé :
  1. <?php 
  2. define("PATH"".");    // place ici le bon chemin sans / final 
  3. header("Content-type: application/json"); 
  4. $files = array(); 
  5. $iterator = new DirectoryIterator(PATH); 
  6. foreach ($iterator as $fileInfo) { 
  7.     if ($fileInfo->isFile()) { 
  8.         $files[] = PATH . '/' . $fileInfo->getFilename(); 
  9.     } 
  10. echo json_encode($files);


  1. <script type="text/javascript"
  2. init_map('map'); 
  3. $.ajax({ 
  4.     type: "get"
  5.     url: "test.php"
  6.     datatype: "json"
  7.     success: function(data){ 
  8.         $(data).each(function(idx, value){ 
  9.             trace_gpx(value); 
  10.         }); 
  11.     } 
  12. }); 
  13. </script>


:dawa:
ovh
Clan> PHP peut exporter un array en json, ce serait encore plus facile et naturel pour le js :cupra:

http://fr.php.net/manual/en/function.json-encode.php
Clandestino
Un petit bout de code PHP qui scanne le répertoire, balance le résultat dans un XML et l'envoie au JS qui le traite.

En gros dans ce cas, ça donnerait ça :

  1. <?php 
  2. $path_to_gpxs = '../whatever_folder_it_is/gpxs/'
  3. $xml_string = <<<xml 
  4. <?xml version="1.0" encoding="UTF-8"?> 
  5. <item
  6. </item
  7. XML
  8.   
  9. $xml_generator = new SimpleXMLElement($xml_string); 
  10.   
  11. if ($handle = opendir($path_to_gpxs)) { 
  12. while (false !== ($file = readdir($handle))) { 
  13. if (is_file($path_to_gpxs.'/'.$file)) { 
  14. $image = $xml_generator->addChild('item'); 
  15. $image->addChild('path'$path_to_gpxs.'/'.$file); 
  16. closedir($handle); 
  17.   
  18. header("Content-Type: text/xml"); 
  19. echo $xml_generator->asXML(); 
  20. ?>


Puis le JS :

  1. <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>  
  2. <script>  
  3. init_map('map') ; 
  4. $.ajax({ 
  5. type: "GET"
  6. url: "participations.xml"
  7. datatype: "xml"
  8. success: function(data) { 
  9. $(data).find("item").each(function() { 
  10. trace_gpx($(this).find('path').text()); 
  11. }); 
  12. }); 
  13. </script>
Tang
Merci pour la précision (qu'il avait également corrigée).

Ca fonctionne si ce n'est que c'est pas "automatique".

En fait le but est qu'il dépose les fichiers dans un dossier sur le serveur et que la carte se mette à jour d'elle-même en vérifiant (genre 1 fois par jour) s'il y a de nouveaux fichiers présents.

Si pas possible en JS, une idée en utilisant autre chose, et facilement ?
Clandestino
C'est src="http://code.jquery.com... et non src:"http://code.jquery.com... :aloy:
Catégorie:  






Ada
CSS
Cobol
CPP
HTML
Fortran
Java
JavaScript
Pascal
Perl
PHP
Python
SQL
VB
XML
Anon URL
DailyMotion
eBay
Flickr
FLV
Google Video
Google Maps
Metacafe
MP3
SeeqPod
Veoh
Yahoo Video
YouTube
6px
8px
10px
12px
14px
16px
18px
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?