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

  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 669
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 669
    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 669
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 669
    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.

  7. #7
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    ça na rien d'étrange

    le navigateur n'a accès qu'au requête http. il ne peut que demander et envoyer des donnés au serveur.
    le disque du serveur (s'il y e a un le navigateur n'en sait rien) n'est pas accessible par le navigateur.

    tu peux écrire à ton banquier et lui demander combien il y a sur ton compte
    il te retournera un courrier avec le montant.
    tu peux lui poster un chèque à encaisser
    il te retournera un bordereau d'encaissement
    tu peux lui demander la liste de tes placements
    Il te la retournera
    Tu peux lui poster la liste modifiée pour qu'il transfère des sommes d'un placement à l'autre ou en retire un

    Mais jamais tu n'auras accès au coffre ni à la comptabilité de ton compte dans la banque.
    la sauvegarde c'est du ressort de ton banquier.

    A+JYT

  8. #8
    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,

    OK, donc PHP est un banquier !

    Je n'avais jamais vu les choses comme ça, merci, c'est éclairant. Merci. Donc AJAX me permet d'envoyer ou de recevoir certaines informations, mais quelque soit la requête que je ferai, c'est PHP qui fera la sauvegarde, car seul a accès au contenu du serveur directement.

    Donc, si j'utilise AJAX pour faire du DOM XML, il faut que l'opération finale de sauvegarde soit réalisée par PHP.

    Merci beaucoup.

+ 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