begin process at 2008 08 21 22:26:19
1 229 667 membres
477 nouveaux aujourd'hui
14 266 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SAUVEGARDER UN DOCUMENT XML DANS UN FICHIER


Information sur la source

Catégorie :Astuces Classé sous : flash, xml, sauvegarder, php Niveau : Débutant Date de création : 09/07/2003 Date de mise à jour : 02/02/2008 12:49:44 Vu / téléchargé: 9 573 / 1 709

Note :
9,33 / 10 - par 6 personnes
9,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note

Description

Lors du développement d'applications web avec Flash, il est souvent nécessaire
de charger et de sauvegarder des variables dans un fichier, une base de données...
S'il est possible de lire des informations à partir d'une source externe directement avec ActionScript,
il en est autrement pour l'écriture. En effet, il vous faudra utiliser un script agissant côté
serveur qui s'occupe de la sous-traitance des opérations.

Dans cet exemple, nous allons voir comment sauvegarder un document XML généré avec Flash
en employant un script PHP pour la sous-traitance.
Ceci peut paraître facile au premier abord, encore faut-il avoir trouvé la solution...
Et croyez-moi, j'ai mis un certain temps avant d'obtenir quelque chose de convenable !

Ci-dessous le code ActionScript (téléchargez le ZIP pour avoir la totalité de l'exemple) :

Source

  • /* Sauvegarder un document XML dans un fichier
  • * =============================================================================
  • * Auteur: Dean
  • * =============================================================================
  • */
  • // Exemple de document XML
  • // -----------------------------------------------------------------------------
  • example = new XML();
  • example.xmlDecl = '<?xml version="1.0" encoding="UTF-8"?>';
  • example_root = example.createElement("exemple");
  • example_author = example.createElement("auteur");
  • example_author.appendChild(example.createTextNode("Dean"));
  • example_description = example.createElement("description");
  • example_description.appendChild(example.createTextNode("Ceci est un exemple !"));
  • example_root.appendChild(example_author);
  • example_root.appendChild(example_description);
  • example.appendChild(example_root);
  • // -----------------------------------------------------------------------------
  • status = "Document non sauvegardé.";
  • // Actions effectuées lors du clic sur le bouton
  • // -----------------------------------------------------------------------------
  • function onClick(component){
  • if(component._name == "SaveXML"){
  • /* Créé une instance de LoadVars, la méthode send de l'objet XML
  • étant trop limitée au niveau de la configuration */
  • data = new LoadVars();
  • // Ajoute notre document XML
  • data["xml"] = example.toString();
  • // Poste la variable avec sendAndLoad
  • response = new LoadVars();
  • response.onLoad = function(failure) { if(!failure) status = "Document sauvegardé avec succès !"; return failure; }
  • data.sendAndLoad("sauvegarder_xml.php", response, "POST");
  • }
  • }
  • // -----------------------------------------------------------------------------
/* Sauvegarder un document XML dans un fichier
 * =============================================================================
 * Auteur: Dean
 * =============================================================================
 */

// Exemple de document XML
// -----------------------------------------------------------------------------
example = new XML();

example.xmlDecl = '<?xml version="1.0" encoding="UTF-8"?>';

example_root = example.createElement("exemple");

example_author = example.createElement("auteur");
example_author.appendChild(example.createTextNode("Dean"));

example_description = example.createElement("description");
example_description.appendChild(example.createTextNode("Ceci est un exemple !"));

example_root.appendChild(example_author);
example_root.appendChild(example_description);

example.appendChild(example_root);
// -----------------------------------------------------------------------------

status = "Document non sauvegardé.";

// Actions effectuées lors du clic sur le bouton
// -----------------------------------------------------------------------------
function onClick(component){

  if(component._name == "SaveXML"){

    /* Créé une instance de LoadVars, la méthode send de l'objet XML
       étant trop limitée au niveau de la configuration */
    data = new LoadVars();

    // Ajoute notre document XML
    data["xml"] = example.toString();

    // Poste la variable avec sendAndLoad
    response = new LoadVars();
    response.onLoad = function(failure) { if(!failure) status = "Document sauvegardé avec succès !"; return failure; }
    data.sendAndLoad("sauvegarder_xml.php", response, "POST");

  }

}
// -----------------------------------------------------------------------------

Conclusion

Comme vous pouvez le voir, je n'ai pas utilisé la méthode send de l'objet XML, car celle-ci
envoie les données sous la forme de "raw-data" (comprenez sans nom de variable) et ceci
pose problème avec PHP car un changement de la configuration (php.ini) est nécessaire.
On aurait pu passer par GET et encoder le document XML dans l'URL, mais ceci est peu recommandé
et limite le volume d'informations à envoyer. LoadVars constitue donc la meilleure alternative.

Si vous testez l'exemple (attention : un serveur web équipé de PHP est requis), vous pouvez
remarquer que l'opération de sauvegarde s'effectue de manière totalement transparente, sans
affichage d'une fenêtre de navigateur. C'est aussi un point fort de cette méthode.

Je pense que j'en ai assez dit, à vous d'étudier le script. Toutes les questions et commentaires
sont les bienvenus.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

02 février 2008 12:49:44 :
J'ai juste enlevé mon mail (spam)
  • signaler à un administrateur
    Commentaire de zappan le 09/07/2003 11:56:38

    Très utile, merci beaucoup :)

  • signaler à un administrateur
    Commentaire de tom le 09/07/2003 12:07:30 administrateur CS

    Merci, Dean! ;)

  • signaler à un administrateur
    Commentaire de top30 le 09/07/2003 16:46:05

    Honnetement  j ai pas eu le temps de lire ta source télécharger y a 5 minutes...
    je voulais juste savoir si tu pouvais avoir une function qui enregistre en XML un object Flash ayant des enfants (comme les childs XML)...

    C est tout... Sinon c est vrai que c est pratique....

  • signaler à un administrateur
    Commentaire de Dean le 09/07/2003 23:26:17

    L'idéal serait de convertir ces objets en XML puis les enregistrer... Une sorte de sérialisation, quoi ! Je ne sais pas si ce genre de fonction est implémenté en natif dans Flash, sinon il faudra les développer...

  • signaler à un administrateur
    Commentaire de flashman007 le 10/07/2003 09:31:09

    erf super pratique ce ptit machin :)

  • signaler à un administrateur
    Commentaire de TomQuick le 04/10/2003 18:08:38

    Super,Meci !!!

  • signaler à un administrateur
    Commentaire de farouest le 13/10/2003 11:43:48

    C super mais comment enregistrer par exemple des variables d'un formulaire dans le fichier xml (exemple.xml) pour pouvoir les réutiliser aprés ?

  • signaler à un administrateur
    Commentaire de Dean le 13/10/2003 21:49:20

    Bonjour farouest,

    Pour réutiliser le XML il te suffit de le charger puis de traiter les infos avec un parser (par exemple celui d'Action Script), en accédant aux divers éléments.
    Je ne vois pas trop où est le problème, s'il s'agit de la démarche tu peux te référer à la documentation Flash, sinon peux-tu préciser ta question ?

  • signaler à un administrateur
    Commentaire de farouest le 13/10/2003 22:22:02

    Et bien en fait j'ai des données qui arrive dans une checkbox via mysql, le choix me donne un résultat dans des variables (10), ensuite je voudrais que l'utilisateur face un premier choix qui soit enregistré dans le xml puis en face un second ect.. le résultat final serais de renvoyer tous ces choix dans une seule page pour une impression..

  • signaler à un administrateur
    Commentaire de Dean le 14/10/2003 18:41:00

    Oui, en qq sorte tu veux assembler les XMLs entre eux. Pourquoi ne pas utiliser une base de données pour effectuer les enregistrements par exemple ? Ou sinon tu pourrais recharger le même XML à chaque fois puis rajouter les éléments, et le sauvegarder à nouveau directement avec Flash. Je pense que ça ne devrait pas poser trop de problème avec l'interface objet d'Action Script...

  • signaler à un administrateur
    Commentaire de farouest le 14/10/2003 18:52:50

    Merci Dean de tes conseils, je vais essayé, en passant par mysql et flash

    :)

  • signaler à un administrateur
    Commentaire de ddami1 le 26/11/2003 11:43:43

    Salut,

    Quelqu'un pourrait-il m'expliquer comment faire pour réccupérer la valeur d'un champ de saisie (par exemple de valeur champ1) de telle sorte qu'il soit enregistré dans le fichier XML à la place du texte "Dean" par exemple. Quel code faut-il mettre et à quel endroit?
    Un exemple en créant une autre source serait la bienvenue :o) Sinon, je donne mon adresse au cas où vous voudriez me répondre par mail: ddami1@online.fr

    Merci d'avance

  • signaler à un administrateur
    Commentaire de ROgEr0891 le 11/01/2005 09:50:33

    Merci pour cette source , elle est trop utile .... !!!!!

  • signaler à un administrateur
    Commentaire de ROgEr0891 le 11/01/2005 09:57:12

    Merci pour cette source , elle est trop utile .... !!!!!

  • signaler à un administrateur
    Commentaire de enthoxx le 21/06/2005 11:51:24

    Tres tres utile !!! Merci beaucoup !!!

  • signaler à un administrateur
    Commentaire de enthoxx le 21/06/2005 11:51:56

    Tres tres utile !!! Merci beaucoup !!!

  • signaler à un administrateur
    Commentaire de roievil le 01/07/2005 22:42:17

    Dean, You rock, ca marche pour moi même si j'ai des trucs bizarres, du genre avec la version mx, ou la version mx 2004 crack.. euh une certaine version il n'arrive pas a ouvrir tout bêtement le xml, tandis ce qu'avec une autre certaine version 'modifiée' différemment ça marche, je n'y comprends rien...

    Et tous ces .flas ne sont pas compatibles entre eux alors que certains devraient l'être.

  • signaler à un administrateur
    Commentaire de roievil le 01/07/2005 22:42:31

    Dean, You rock, ca marche pour moi même si j'ai des trucs bizarres, du genre avec la version mx, ou la version mx 2004 crack.. euh une certaine version il n'arrive pas a ouvrir tout bêtement le xml, tandis ce qu'avec une autre certaine version 'modifiée' différemment ça marche, je n'y comprends rien...

    Et tous ces .flas ne sont pas compatibles entre eux alors que certains devraient l'être.

  • signaler à un administrateur
    Commentaire de Brendarth le 02/12/2005 12:41:31

    Très bonne source ! 10/10

  • signaler à un administrateur
    Commentaire de vladispala le 11/05/2006 17:01:03

    bonjour j'ai besoins d'ecrir via flash dans mon fichier xml pour pouvoir mettre a jour des donne ou du texte dans  un site sans passer par le serveur ftp
    en gros la personne qui va gerer le site ne connais rien et il luii faus un petit soft qui permet de reactualiser son site sans galerer ...
    merci

  • signaler à un administrateur
    Commentaire de BicTouBi le 12/07/2006 21:04:31

    Bonjour,

    Moi aussi je cherche une solution pour mettre a jour des données contenues dans un fichier xml. En gros j'ai un fichier xml qui contient des commentaires, des pointeurs d'images, des prix  et tous cela devrait être mis à jour via un back office flash. Merci de m'éclairer si vous avez déjà fait ce genre de programme. Liaison flash - php -xml

    Merci

  • signaler à un administrateur
    Commentaire de buzhug35 le 24/09/2006 11:29:31

    Bonjour,
    J'ai trouvé cela très intéressant mais cela ne fonctionne pas chez moi (dossier déposé dans Apache2 htdocs en local) : si j'ouvre le fichier .fla directement et demande de tester l'animation, aucun fichier n'est créé et pas de message d'erreur. Si je cherche à ouvrir le.html avec l'adresse du serveur Apache, on me rétorque que je n'ai pas le droit de le faire. Où est-ce que j'ai fauté ?
    D'avance merci pour votre aide.

  • signaler à un administrateur
    Commentaire de vegetalain le 30/05/2008 11:19:12

    Salut, la source est top et marche très très bien chez moi. Par contre j'ai le meme souci que BicTouBi. Il faut que je puisse changer "un mot" dans le fichier xml (le plat du jour d'un resto.), genre comment remplacer "Ceci est un exemple !" par le contenu d'un champ texte dans l'interface flash.

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS