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

JavaScript Discussion :

Copier contenu div et exporter dans .txt avec un boutton


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 108
    Par défaut Copier contenu div et exporter dans .txt avec un boutton
    Bonjour,

    Je recherche un script ou un exemple qui permettrait lorsque l'on clic sur un bouton, d'exporter le contenu d'une div (texte) dans un .txt.

    Merci pour votre aide,

    Cordialement

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Ajax + php = youpi

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 108
    Par défaut
    Tu aurais un exemple de code?

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par gégé140488 Voir le message
    Tu aurais un exemple de code?
    C'est la base même d'AJAX ^^

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    pour simplifier et tester le principe, mettons que tu aies ça dans ta page:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <textarea id="zone">
    Zone plus ou moins dynamique, pas grave.
    </textarea>
     
    <p>
    <input type="button" value="envoi" onclick="mess(document.getElementById('zone').value)" />
    </p>
    tu ajoutes:

    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
    <script type="text/javascript">
     
    function mess(txt){
     
    try{	
    	arg="texte="+escape(txt);
    alert(arg)
    	req = (window.XMLHttpRequest) ? new XMLHttpRequest() : new 
     
    ActiveXObject("Microsoft.XMLHTTP");
    	req.open("POST", "ajax.inc.php", true);   
    	req.setRequestHeader("Content-type", "application/x-www-form-
     
    urlencoded");   
    	req.send(arg);  	
     
    }
    catch(i){
    	alert("Petit souci de connexion...\nVeuillez réessayer.");
     
    };
     
    }
     
    </script>
    tu crées une page ajax.inc.php qui contient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $texte=$_POST['texte'];
    $fp = fopen ("fichier.txt", "a");  
    fputs ($fp, stripslashes($texte));  
    fclose ($fp);  
    ?>
    tu crées une page vide fichier.txt.

    tu testes le bazar;

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 108
    Par défaut
    Tout d'abord merci pour tes explications.

    j'ai l'erreur suivante :

    "mess is not defined"

    Tu as une idée du problème?

  7. #7
    Membre confirmé Avatar de ninatity
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2010
    Messages : 64
    Par défaut
    Citation Envoyé par gégé140488 Voir le message
    j'ai l'erreur suivante :

    "mess is not defined"
    Bonjour, est ce que tu as mis le code javascript dans la partie <head></head> de ton fichier comme par exemple :
    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
    <html>
    <head><title>Div vers fichier texte</title>
    <script type="text/javascript">
     
    function mess(txt){
     
    try{	
    	arg="texte="+escape(txt);
    alert(arg)
    	req = (window.XMLHttpRequest) ? new XMLHttpRequest() : new 
     
    ActiveXObject("Microsoft.XMLHTTP");
    	req.open("POST", "ajax.inc.php", true);   
    	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");   
    	req.send(arg);  	
     
    }
    catch(i){
    	alert("Petit souci de connexion...\nVeuillez réessayer.");
     
    };
     
    }
     
    </script>
    </head>
    <body>
    <textarea id="zone">
    Zone plus ou moins dynamique, pas grave.
    </textarea>
     
    <p>
    <input type="button" value="envoi" onclick="mess(document.getElementById('zone').value)" />
    </p>
    </body>
    </html>
    Bonne continuation!

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 108
    Par défaut
    J'ai fait cela:

    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
      <xsl:template match="/">	 	
        <html>		
          <head>
          <script type="text/javascript" src="scriptjavascript.js"></script>	
            <title>
            </title>
     
          </head>		
          <body>
              <center>
              <table border="1" style="border-collapse: collapse" width="80%">
              <tr><td bgcolor="#DBC1EC"><center><b><font size="5">Test</font></b></center></td></tr>
              </table>
              </center>
              <br/>
     
              <center>
              <FIELDSET style="width:360px;">
              <LEGEND align="top"> <b>Actions possibles : </b></LEGEND> 
     
              <form>
              <input type="button" value="envoi" onclick="mess(document.getElementById('tests').value)" />
              <input type="submit" value="Save as .txt" />
              <input type="submit" value="Send by email" /> 
              </form>
     
              </FIELDSET>
              </center>
              <br/>
               <div id="tests">    
               <xsl:for-each select="//testcase">
               <xsl:for-each select="node">               	 		 
               <xsl:for-each select="transition">
                <xsl:for-each select="input">
     
                <xsl:value-of select="@name"/> "<xsl:value-of select="dvalue/@value"/><xsl:for-each select="dvalue/dvalue"><xsl:value-of select="@value"/>","</xsl:for-each>"
     
                <br/>
                </xsl:for-each>
                <xsl:for-each select="expresultauto">
                  <xsl:value-of select="@name"/><br/>
                </xsl:for-each>
                </xsl:for-each>		  		        
              </xsl:for-each><br/>
              </xsl:for-each>
              </div>
     
          </body>	
        </html>	 
      </xsl:template>
    </xsl:stylesheet>
    il y a du xsl parce que j'affiche dans ma page des données xml. (ce sont ses données xml que j'aimerais exporter dans notepad)

    Et c'est dans scriptjavascript.js que j'ai mis le code de la fonction:

    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
    function mess(txt){
     
    try{	
    	arg="texte="+escape(txt);
    alert(arg)
    	req = (window.XMLHttpRequest) ? new XMLHttpRequest() : new 
     
    ActiveXObject("Microsoft.XMLHTTP");
    	req.open("POST", "ajax.inc.php", true);   
    	req.setRequestHeader("Content-type", "application/x-www-form-
     
    urlencoded");   
    	req.send(arg);  	
     
    }
    catch(i){
    	alert("Petit souci de connexion...\nVeuillez réessayer.");
     
    };
     
    }

  9. #9
    Membre confirmé Avatar de ninatity
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2010
    Messages : 64
    Par défaut
    Et ton problème persiste encore?
    edit :
    Tu peux montrer comment est ton xml?
    Merci

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 108
    Par défaut
    Oui j'ai l'erreur que j'ai mentionnée plus haut.

    "mess is not defined"

    Aucune fenêtre ne s'ouvre au clic bouton.

    Voici un bout du code xml:

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet href="script.xsl" type="text/xsl"?>
    <TST>
        <TSTProp idprofile="P7" idum="1" profile="FewOnHold" tccovrequirementinlibrary="50.00 %" tsalgo="user oriented - 5 test case(s)" tscovevent="79.17 %" tscovitem="77.14 %" tscovobject="85.71 %" tscovrequirementinmodel="75.00 %" tsdatetime="17 Dec 2010 - 11:00:15" tsformat="3.8" tsname=".\TestSuites\tests.xml" typeprofile="usage" typetsalgo="user oriented" umname="\Version1\MyIC_SIP.mcm" umversion="">
            <subUM id="2" name="\Version1\MyIC_InitConfig.mcm"/>
        </TSTProp>
        <suite pathRcts=".\TestSuites\tests.rcts">
            <testcase id="1" pathRctc=".\TestSuites\tests_1.rctc" tccovevent="58.33 %" tccovitem="42.86 %" tccovobject="76.19 %" tccovrequirementinlibrary="16.67 %" tccovrequirementinmodel="25.00 %">
                <node id="1" keypath="0" name="\Version1\MyIC_SIP.mcm">
                    <transition from="S9998" id="T1" name="" objectcomment="before Application start" statename="Invoke" step="1" to="S9998"/>
                </node>
                <node id="2" keypath="1" name="\Version1\InitConfig.mcm">
                    <transition from="S9998" id="T1" name="" statename="Invoke" step="2" to="S1"/>
                    <transition from="S1" id="T2" name="in_InitOption" statename="initOptions" step="3" to="S2">
                        <input id="1" name="in_InitOption">
                            <dvalue ntype="NoParameters" type="charstring" value="NoParameters"/>
                        </input>
                    </transition>

  11. #11
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour

    <input type="button" value="envoi" onclick="mess(document.getElementById('tests').value)" />
    <div id="tests">
    Un div n'a pas d'attribut value , utilise innerHTML.

    PS: sur le forum javascript, le code HTML généré serai le bienvenue plutôt que ton xsl.

    A+.

  12. #12
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 108
    Par défaut
    J'ai remplacé value par innerhtml mais ça ne donne toujours rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" value="envoi" onclick="mess(document.getElementById('tests').innerHTML)" />

  13. #13
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    T'as mis quoi dans ton onreadystatechange ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  14. #14
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    1-Tu ne récupères pas la valeur retournée par la requête Ajax dans un onreadysteatechange .
    2-Montre nous le HTML généré mais pas le xsl

  15. #15
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 108
    Par défaut
    Le problème est que lorsque je clique sur la page généré, et que je demande le code source, j'ai le contenu du document xml de départ et non pas le code html de la page générée.

  16. #16
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par Bovino Voir le message
    T'as mis quoi dans ton onreadystatechange ?
    Citation Envoyé par andry.aime Voir le message
    1-Tu ne récupères pas la valeur retournée par la requête Ajax dans un onreadysteatechange .l
    J'étais grillé mais je te les fait relire

  17. #17
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 108
    Par défaut
    Oui mais je ne sais pas comment faire pour utiliser cette méthode?

  18. #18
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391

  19. #19
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 108
    Par défaut
    J'ai mis le code que vous m'avez indiqué mais je n'ai toujours rien au clic bouton:

    Le code de script.xsl:

    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
      <xsl:template match="/">	 	
        <html>		
          <head>
          <script type="text/javascript" src="scriptjavascript.js"></script>	
            <title>
            </title>
     
          </head>		
          <body>
              <center>
              <table border="1" style="border-collapse: collapse" width="80%">
              <tr><td bgcolor="#DBC1EC"><center><b><font size="5">Test</font></b></center></td></tr>
              </table>
              </center>
              <br/>
     
              <center>
              <FIELDSET style="width:360px;">
              <LEGEND align="top"> <b>Actions possibles : </b></LEGEND> 
     
              <form>
              <input type="button" value="envoi" onclick="go()" />
              <input type="submit" value="Save as .txt" />
              <input type="submit" value="Send by email" /> 
              </form>
     
              </FIELDSET>
              </center>
              <br/>
               <div id="tests">    
               <xsl:for-each select="//testcase">
               <xsl:for-each select="node">               	 		 
               <xsl:for-each select="transition">
                <xsl:for-each select="input">
     
                <xsl:value-of select="@name"/> "<xsl:value-of select="dvalue/@value"/><xsl:for-each select="dvalue/dvalue"><xsl:value-of select="@value"/>","</xsl:for-each>"
     
                <br/>
                </xsl:for-each>
                <xsl:for-each select="expresultauto">
                  <xsl:value-of select="@name"/><br/>
                </xsl:for-each>
                </xsl:for-each>		  		        
              </xsl:for-each><br/>
              </xsl:for-each>
              </div>
     
          </body>	
        </html>	 
      </xsl:template>
    </xsl:stylesheet>
    scriptjavascript.js:

    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
    function getXhr(){
                                    var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr
    			}
     
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    			function go(){
    				var xhr = getXhr()
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						alert(xhr.responseText);
    					}
    				}
    				xhr.open("GET","C:\\WINDOWS\\Notepad.exe",true);
    				xhr.send(null);
    			}
    Et j'ai même éssayer avec ajax.php comme dans l'exemple et je n'ai toujours pas de fenêtre qui s'affiche. J'ai l'impression que le code html dans du xsl c'est pas le top..

    J'ai l'erreur suivante avec la console de debug javascript de firefox:

    Erreur*: uncaught exception: [Exception... "Component returned failure code: 0x805e000a [nsIXMLHttpRequest.open]" nsresult: "0x805e000a (<unknown>)" location: "JS frame :: file:///C:/Users/Test/Desktop/Parser/scriptjavascript.js :: go :: line 41" data: no]

  20. #20
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    xhr.open("GET","C:\\WINDOWS\\Notepad.exe",true);

    C'est le fichier php que tu appelles sur le serveur que tu dois mettre dans l'URL.
    Ton ancien code est proche de ton besoin que ce dernier, sauf que tu dois seulement ajouter le traitement de retour avec le onreadystatechange.

Discussions similaires

  1. [Toutes versions] Supression de ligne vide dans txt avec virgule
    Par Oh!Tofocus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/05/2010, 20h48
  2. [VBA]Copier contenue d'une variable dans le clipboard
    Par nicacc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/03/2009, 12h23
  3. Copier contenu d'une feuille dans un autre fichier
    Par neo2k2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2007, 18h01
  4. Export CSV/txt avec délimitateur ";"
    Par zephirsoul dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/05/2007, 08h35
  5. [OmniMark 5] Copier contenu d'un dossier dans autre dossier
    Par Hoegaarden dans le forum Autres langages
    Réponses: 3
    Dernier message: 24/08/2005, 16h59

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