IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Inserer dans une feuille XML..;


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut Inserer dans une feuille XML..;
    Bonjour à tous ,
    Je posséde une fonction pour ouvrir un fichier XML data.xml

    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
    function loadXML(){
     
    	// Routine de vérification si le navigateur gêre la méthode utilisée
    	if (document.implementation && document.implementation.createDocument) {
    		// déclaration pour Mozilla et FF
    		docXml = document.implementation.createDocument('', '', null);
     
     
    	}
    	else if (window.ActiveXObject){
    		// déclaration pour IE
    		docXml = new ActiveXObject("Microsoft.XMLDOM");
     
    	}
    	else {
     
    		alert('Votre navigateur ne saurait pas éxécuter ce script.');
     
    	}
     
    	docXml.load("data.xml");
    	alert("data XML chargé...");
     
     
    }
    // fonction de traitement des données chargées

    Pour faire simple j'ai besoin d'inserer les bonnes valeurs dans mon fichiers XML
    Par exemple j'ai mes 4 variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       var AMdebutLundi;
    	 var AMFinLundi;
    	 var PMdebutLundi;
    	 var PMFinLundi;
    que je dois inserer dans mon fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <techniciens>
       <org.lrd.data.Technicien>
      <id>0</id>
      <nbHeuresSupHebdo>0</nbHeuresSupHebdo>
      <horaires>
        <jour>
          <day>LUN</day>
          <startAM>8.0</startAM>
          <endAM>12.0</endAM>
          <startPM>14.0</startPM>
          <endPM>18.0</endPM>
        </jour>
    entre je dois donc avoir la valeur de ma variable Mais je sais pas comment parcrourir mon arbre et comment inserer cette valeur
    Merci de votre aide précieuse
    Cordialement
    Argol.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut
    J'aurais préférer une version avec (XPATH ?) c'est possible ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function technicien(num) {
     
    	var numero = parseInt(num, 10);
     
     
    	// on crée des variables de type Array, qui recoivent comme valeur les balises choisies dnas le document xml
    	var techniciens = docXml.getElementsByTagName('org.lrd.data.Technicien');
     
    		alert(techniciens[0].firstChild.nodeValue);
     
    	var heureSup = docXml.getElementsByTagName('nbHeuresSupHebdo');
    	alert(heureSup);
    j'ai essayer sa mais bon je sais pas quel balise utilisé etc.. je trouve trés peu de doc

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    la tu me poses une colle Argol

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut
    lol
    Avec Jquery je peux inserer des valeurs dans un fichier XML aussi ?
    l'exmple permet de lire mais je sais pas si on peut inserer !

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	var techniciens = docXml.getElementsByTagName('result')[0].getElementsByTagName('techniciens')[0].getElementsByTagName('org.lrd.data.Technicien')[0].getElementsByTagName('nbHeuresSupHebdo')[0].firstChild.nodeValue;
     
    		alert(techniciens);
    	docXml.getElementsByTagName('result')[0].getElementsByTagName('techniciens')[0].getElementsByTagName('org.lrd.data.Technicien')[0].getElementsByTagName('nbHeuresSupHebdo')[0].firstChild.nodeValue=99999;
    	docXml.save("data.xml");
    	var techniciens = docXml.getElementsByTagName('result')[0].getElementsByTagName('techniciens')[0].getElementsByTagName('org.lrd.data.Technicien')[0].getElementsByTagName('nbHeuresSupHebdo')[0].firstChild.nodeValue;
     
    		alert(techniciens);

    j''essaye de mofidier mon fichier XML et sa marche bien sa m'affiche bien 10 valeur de debut puis aprés 99999
    le seul hic c'est que sa sauvergade pas dans le fichier XML...
    j'ai vu que il y avait une fonction save mais firebug me dit que elle existe pas !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docXml.save("data.xml");
    Comment faut il donc faire pour sauvergarder dans le fichier XML les modifications apporté ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docXml.save is not a function

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    non c'est coté serveur que la sauvegarde se fera ...
    il faut renvoyer le code xml sous forme de string au serveur

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut
    je fais comment pour renvoyer sous forme de string le code XML ?

    j'avou ne pas avoir compris, dsl.
    Merci de votre aide.

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    fais un send en ajax

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
              $.ajax({
                   url: "page.php"
                   , type: "POST"
                   , contentType: "text/xml"
                   , processData: false
                   , data: xmlDocument
                   , success: handleResponse
                });

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut
    Il faut donc que j'utilise la technologie Jquery ?
    Pce la dans mon cas j'utilisé pas Jquery mais une simple fonction loadXML()...pour charger mon fichier XML.

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    non tu peux sans doute aussi envoyer le string du xml en simple ajax sans jquery,

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut
    en fait moi je travail en local actuellement et le fichier XML et la page WEB sont dans le même dossier.
    Je charge donc avec lodXML() ce fichier en passant juste son nom.
    Mais comment je fais pour le renvoyer une fois modifier ? si
    quelqu'un a la solution ou des éclaircissements parce que j'en ai vraiment besoin...
    Merci.

  14. #14
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut
    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
    $(document).ready(  
     function()
     {
       $.ajax( {
                type: "GET",
                url: "data.xml",
                dataType: "xml",
                success: function(xml) 
                         {
                           $(xml).getElementsByTagName('result')[0].getElementsByTagName('techniciens')[0].getElementsByTagName('org.lrd.data.Technicien')[0].getElementsByTagName('nbHeuresSupHebdo')[0].firstChild.nodeValue=99999;
     
     
                          }
            });
      }
    );

    et si je fais sa en Jquery c'est bon ?

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    attention !
    quand tu le renvoies, tu passes juste un string en paramètre ..
    cote serveur il faut recupérer le string et le mettre dasn un fichier avec le bon header et le sauvegarder.
    renvoyer juste le string avac ajax ne suffit pas

  16. #16
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut
    Ok merci pour l'explication,
    pour tout reprendre propre je vais utiliser Jquery.
    dans mon en tete j'ai donc mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script type="text/javascript" src="jquery-1.3.2.js"></script>
     
    <script type="text/javascript">

    j'essaye d'utiliser la technologie Jquery et j'ai fait la fonction
    et apparemment sa ne doit pas marcher comme sa
    j'appele la fonction technicien lorsque je clique sur un bouton.


    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
    function technicien(num) {
     
     
    $(document).ready(  
     function()
     {
       $.ajax( {
                type: "GET",
                url: "data.xml",
                dataType: "xml",
                success: function(xml) 
                         {
                         // on crée des variables de type Array, qui recoivent comme valeur les balises choisies dnas le document xml
    	var techniciens = docXml.getElementsByTagName('result')[0].getElementsByTagName('techniciens')[0].getElementsByTagName('org.lrd.data.Technicien')[0].getElementsByTagName('nbHeuresSupHebdo')[0].firstChild.nodeValue;
     
    	alert(techniciens);
    	docXml.getElementsByTagName('result')[0].getElementsByTagName('techniciens')[0].getElementsByTagName('org.lrd.data.Technicien')[0].getElementsByTagName('nbHeuresSupHebdo')[0].firstChild.nodeValue=99999;
     
    	var techniciens = docXml.getElementsByTagName('result')[0].getElementsByTagName('techniciens')[0].getElementsByTagName('org.lrd.data.Technicien')[0].getElementsByTagName('nbHeuresSupHebdo')[0].firstChild.nodeValue;
     
    	alert(techniciens);
     
                          }
            });
      }
    );
     
     
    }

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1

  18. #18
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut
    comment je fais pour appeler la fonction Jquery ci-dessous sans nom lors du clic avec mon bouton ?
    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
    $(document).ready(  
     function()
     {
       $.ajax( {
                type: "GET",
                url: "sites.xml",
                dataType: "xml",
                success: function(xml) 
                         {
                           $(xml).find('site').each(   
                             function()
                             {
                                var id = $(this).attr('id');
                                var title = $(this).find('title').text();
                                var url = $(this).find('url').text();
                                $('<div class="items" id="link_' + id + '"></div>').html('<a href="' + url + '">' + title + '</a>').appendTo('#Div_XML');
                                $(this).find('desc').each(
                                                function()
                                                {
                                                    var brief = $(this).find('brief').text();
                                                    var long = $(this).find('long').text();
                                                    $('<div class="brief"></div>').html(brief).appendTo('#link_'+id);
                                                    $('<div class="long"></div>').html(long).appendTo('#link_'+id);
                                                });
                              });
                          }
            });
      }
    );

  19. #19
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    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
     
     
     function patouilleXML()
     {
       $.ajax( {
                type: "GET",
                url: "sites.xml",
                dataType: "xml",
                success: function(xml) 
                         {
                           $(xml).find('site').each(   
                             function()
                             {
                                var id = $(this).attr('id');
                                var title = $(this).find('title').text();
                                var url = $(this).find('url').text();
                                $('<div class="items" id="link_' + id + '"></div>').html('<a href="' + url + '">' + title + '</a>').appendTo('#Div_XML');
                                $(this).find('desc').each(
                                                function()
                                                {
                                                    var brief = $(this).find('brief').text();
                                                    var long = $(this).find('long').text();
                                                    $('<div class="brief"></div>').html(brief).appendTo('#link_'+id);
                                                    $('<div class="long"></div>').html(long).appendTo('#link_'+id);
                                                });
                              });
                          }
            });
      }
     
    $(document).ready( patouilleXML() );

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onclick="patouilleXML()" value="XML" />

  20. #20
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 116
    Points : 41
    Points
    41
    Par défaut
    grace a vous j'ai pu avancer un peu, merci.

    j'ai donc fait en jquery une fonction pour modifier mon XML data
    une fois que j'ai fait mes affectations comme dans ma fonction modifieXML
    comment je fais pour envoyer le string avec le send en AJAX de ce que j'ai modifié ?

    ou je récupère ce string et comment marche la méthode ci-dessous ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
         $.ajax({
                   url: "page.php"
                   , type: "POST"
                   , contentType: "text/xml"
                   , processData: false
                   , data: xmlDocument
                   , success: handleResponse
                });

    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
    function modifieXML()
     {
     
       $.ajax( {
                type: "GET",
                url: "data.xml",
                dataType: "xml",
                success: function(xml) 
                         {
     
                           $(xml).find('jour').each(   
                             function()
                             {
    							 var jour = $(this).find('day').text();
    							 if  (jour=="LUN")
    							 {							 
     
    							  $(this).find('startAM').nodeValue=AMdebutLundi;
    							   $(this).find('endAM').nodeValue=AMFinLundi;
    							    $(this).find('startPM').nodeValue=PMdebutLundi;
    								 $(this).find('endPM').nodeValue=PMFinLundi;
     
    							 }

    merci de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/10/2010, 17h47
  2. inserer une ligne dans une feuille liee a une autre par une macro
    Par EF1453 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/12/2009, 13h19
  3. Inserer le contenu d'une listbox dans une feuille
    Par PascGuil dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 09/08/2007, 16h13
  4. inserer du javascript dans une page XML
    Par rottenberg dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/07/2007, 20h38
  5. [VB6] [Excel] Insérer une image dans une feuille
    Par mathias dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 09/10/2002, 07h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo