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

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

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.