Mettre à jour un fichier xml (ajouter un enregistrement) avec la fonction appendchild, (as2-as3) et php

Soyez le premier à donner votre avis sur cette source.

Vue 9 434 fois - Téléchargée 986 fois

Description

Voilà un exemple basique d'utilisation de la fonction appendchild de flash pour ajouter un enregistrement à un fichier xml.

Le principe:
- on ouvre le fichier source xml
- en cliquant sur le bouton, on créer un nouvel objet xml avec les textes de saisi
- on ajoute l'objet xml au fichier xml source
- on envoie l'objet modifié à php
- php met à jour le fichier.

Source / Exemple :


//////////////////////////////////////////////////////////
//   VERSION AS2
///////////////////////////////////////////////////////////

Sur la première image

stop();
///////////////////////////////////////////////////
//          ouverture du fichier xml
///////////////////////////////////////////////////
projet_xml.contentType = "text/XML";
projet_xml.xmlDecl = "<?xml ?>";
projet_xml = new XML();
projet_xml.ignoreWhite = true;
projet_xml.load("xml.xml");
projet_xml.onLoad = function(success) {		
	if(success){		
	_root.fichierxml.text=projet_xml; // pour visualiser le contenu du fichier xml
	}
}

Action On release du bouton envoyer:

on (release) {
  pseudosaisi=_root.pseudo.text;
  messagesaisi=_root.messager.text;
//on créer l'objet xml à ajouter:
  newxml= new XML("<poste><pseudo>"+pseudosaisi+"</pseudo><message>"+messagesaisi+"</message></poste>");
//on rattache l'objet à l'xml existant 
  projet_xml.firstChild.appendChild(newxml);
//uniquement pour le test sous flash, je vérifie l'anim si le xml à envoyé est complet   
  trace (projet_xml);
//j'envoie le tout à php qui écrit dans le fichier xml:  
  projet_xml.sendAndLoad("xml.php", projet_xml);
//cette action c'est juste pour actualiser l'affichage sans recharger (dans l'absolu, elle n'est pas nécessaire):  
 gotoAndPlay("Séquence 2", 1);	
}

/////////////////////////////////////////////////////////////////////////////////////////////
// VERSION AS3
/////////////////////////////////////////////////////////////////////////////////////////////
stop();

var xmlLoader:URLLoader = new URLLoader();
var xml_projet:XML = new XML(); 
xmlLoader.addEventListener(Event.COMPLETE, LoadXML); 
xmlLoader.load(new URLRequest("XML.xml")); 
function LoadXML(e:Event):void {
xml_projet = new XML(e.target.data);
}

   
//fonction exécutée en cliquant sur le bouton envoyer  
function onClic(pEvt:Event):void {
var pseudosaisi:String = pseudo.text;
var messagesaisi:String = messager.text
var nodetext=XML("<poste><pseudo>"+pseudosaisi+"</pseudo><message>"+messagesaisi+"</message></poste>");   
xml_projet.appendChild(nodetext);  
var loader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("xml.php");
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
req.method = URLRequestMethod.POST;
req.data = xml_projet;
loader.load(req);
play();
}
//ecoute du clic sur bouton:   
envoyer.addEventListener(MouseEvent.CLICK, onClic);

////////////////////////////////////////////////////////////////////////////////////////////

Conclusion :


Pour faire un guestbook

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

bonjour j'ai essayer de réaliser ce projet cela m'aurai bien servi mais , j'ai beau a chercher cela ne fonctionne pas ni en As2 ni en As3 , y a t'il une erreur?
trek9505
Messages postés
76
Date d'inscription
dimanche 22 mai 2011
Statut
Membre
Dernière intervention
26 mai 2011

Merci pour ta réponse, mais dit comme ça, j'ai pas tout compris, c'est dans ces moments la qu'on se sent newbie. Plus d'info ? :)
fshwork
Messages postés
4
Date d'inscription
mercredi 28 mai 2003
Statut
Membre
Dernière intervention
24 janvier 2011

salut,

Tu peux partir du même principe en "parsant" ton xml jusqu'au node à modifier, affecter la valeur à ton xml, et mettre à jour ton fichier xml.
trek9505
Messages postés
76
Date d'inscription
dimanche 22 mai 2011
Statut
Membre
Dernière intervention
26 mai 2011

Salut,
Merci pour le code, j'ai juste une question je voudrais savoir comment faire pour supprimer et remplacer le texte du xml plutot que de le rajouter à la suite du texte existant ?
pegase31
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6
pour les données utilisateurs en local, il y a justement les SharedObjects prévus pour ça.

Peg'

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.