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