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

AJAX Discussion :

Supprimer des données dans un fichier XML à l'aide d'AJAX


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de jean-c
    Homme Profil pro
    Développeur, documentaliste, gestionnaire d'information
    Inscrit en
    Décembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur, documentaliste, gestionnaire d'information

    Informations forums :
    Inscription : Décembre 2014
    Messages : 24
    Par défaut Supprimer des données dans un fichier XML à l'aide d'AJAX
    Bonjour,

    Je travaille actuellement sur une page web ou les données sont stockées dans un fichier XML, je les crée et les affiche avec du DOM PHP. Afin de pouvoir en supprimer si besoin, je veux utiliser Javascript pour interagir avec le serveur au clic d'un bouton. Lors du clic, j'envoie une requête en AJAX qui fera le travail de suppression sur les nœuds concernés de mon fichier XML, qui ne s'afficheront donc plus sur ma page.

    Comment procèderiez-vous pour retirer ces informations du fichier XML ? Auriez-vous des idées, des suggestions d'optimisation ?

    Code Javascript /AJAX :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    function supprAmis(unIDAmi) {
     
    	var xhr = null;
     
    	if(window.XMLHttpRequest) {
     
    		xhr = new XMLHttpRequest();
     
    	} else {
     
    		xhr = new ActiveXObject("Microsoft.XMLHTTP");
     
    	}
     
    	xhr.open("POST", "Codes_amis_3DS.xml", true);	
    	xhr.overrideMimeType('text/xml');
    	xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	xhr.send(null);	
     
     
    	xhr.onreadystatechange = function(){
     
    		if(xhr.readyState == 4 && xhr.status == 200) {
     
    			var docXml = xhr.responseXML;
    			var elAmis = docXml.documentElement.getElementsByTagName("friend").length;
    			console.log("%O : " + docXml);
    			console.log(elAmis);
    			//alert(elAmis);
     
    			for(i = 0; i < elAmis; i++) {
     
    				var elCetAmi = docXml.documentElement.childNodes.item(i).getAttribute("id");
    				console.log(elCetAmi);				
    				//alert(elCetAmi);
     
    				if(elCetAmi == unIDAmi) {
     
    					var docSuppr = docXml.documentElement;
    					var unElem = docSuppr.childNodes[i]
    					var elemSuite = unElem.parentNode;
    					var retire = elemSuite.removeChild[i];
    					console.log(docSuppr);
    					console.log(unElem);
    					console.log(elemSuite);
    					console.log(retire);
     
    					//alert("C'est bon !");
     
     
     
    				}
     
    			}
     
    		}	
     
    	}
     
    }
    En vous remerciant par avance.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    Puisque les données sont ajoutées en PHP, je les enlèverai aussi en PHP.
    Ou alors vous pensiez à quelque chose d'autre, vous pouvez détailler ?

  3. #3
    Membre averti Avatar de jean-c
    Homme Profil pro
    Développeur, documentaliste, gestionnaire d'information
    Inscrit en
    Décembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur, documentaliste, gestionnaire d'information

    Informations forums :
    Inscription : Décembre 2014
    Messages : 24
    Par défaut
    Bonjour,

    Je souhaite me servir d'AJAX car il est question d'interagir avec un bouton via l'évènement onClick() de celui-ci. La quatrième colonne du tableau que PHP me retourne comporte un bouton "Supprimer". Lors du clic sur ce bouton, ma fonction va faire une requête asynchrone qui supprimera de l'arbre XML les informations concernées, elles ne seront, par conséquent, plus affichées dans ma page par la suite.

    Le fichier XML :
    Code xml : 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
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <friendCodes>
    	<friend id="1">
    		<name>aaaaaa</name>
    		<code>1111-1111-1111</code>
    	</friend>
    	<friend id="2">
    		<name>bbbbbb</name>
    		<code>2222-2222-2222/code>
    	</friend>
    	<friend id="3">
    		<name>cccccc</name>
    		<code>3333-3333-3333</code>
    	</friend>
    	<friend id="4">
    		<name>dddddddd</name>
    		<code>4444-4444-4444</code>
    	</friend>
    	<friend id="5">
    		<name>eeeeeeeeeeee</name>
    		<code>5555-5555-5555</code>
    	</friend>
    </friendCodes>

    Ici, je veux utiliser DOM XML avec de l'AJAX pour supprimer l'élément <friend></friend> et ses éléments enfants. Chaque <friend> correspondant à une des lignes du tableau affiché.

    Me suis-je trompé dans la structure de la requête AJAX ou dans mon DOM (fonction JS donnée plus haut)? J'avoue que cette tentative est aussi une manière de m'initier à AJAX.

    Merci par avance.

  4. #4
    Membre averti Avatar de jean-c
    Homme Profil pro
    Développeur, documentaliste, gestionnaire d'information
    Inscrit en
    Décembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur, documentaliste, gestionnaire d'information

    Informations forums :
    Inscription : Décembre 2014
    Messages : 24
    Par défaut Du nouveau... presque...
    Bonsoir,

    J'apporte un petit peu de nouveau à ce topic au sens ou je sais à présent qu'AJAX peut effectivement faire du DOM XML sur un fichier XML, mais si il peut ajouter des lignes ou en enlever, je n'ai pas trouvé comment on faisait la sauvegarde finale ; seul PHP semble pouvoir le faire.

    Aurais-je tort ?

    Du coup, je préfère utiliser AJAX pour afficher dynamiquement des éléments en HTML tels que des formulaires et transmettre des données. Je laisse à PHP la question du traitement.

    Je n'ai pas vraiment résolu le problème initial, mais à moins que l'un d'entre vous ne sache comment on sauve un fichier en DOM XML avec AJAX, je ne vois pas.

    Merci quand même.

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    Citation Envoyé par jean-c Voir le message
    seul PHP semble pouvoir le faire.
    oui. le code Javascript est exécuté côté client et le code PHP côté serveur d'où ma réponse du mois de mars

  6. #6
    Membre averti Avatar de jean-c
    Homme Profil pro
    Développeur, documentaliste, gestionnaire d'information
    Inscrit en
    Décembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur, documentaliste, gestionnaire d'information

    Informations forums :
    Inscription : Décembre 2014
    Messages : 24
    Par défaut
    Certes, mais AJAX, c'est du Javascript qui permet de récupérer des données depuis le serveur de manière asynchrone, et aussi d'en envoyer, d'où, d'ailleurs, les requêtes POST il me semble. Etrange, du coup, que seul PHP puisse faire une sauvegarde d'un fichier XML avec DOM.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/01/2009, 14h02
  2. Récuperer des données dans un fichier XML/ Sitemap
    Par Maldus dans le forum ASP.NET
    Réponses: 6
    Dernier message: 07/07/2008, 17h25
  3. Réponses: 6
    Dernier message: 05/02/2008, 22h52
  4. Remplacer / Supprimer des données dans un fichier txt
    Par PedroBD dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2006, 13h33
  5. [XML] stocker des données dans un fichier XML
    Par R3iTt0R dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/05/2005, 16h51

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