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 :

afficher boite de dialogue enregistrer sous


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Points : 110
    Points
    110
    Par défaut afficher boite de dialogue enregistrer sous
    bonsoir à toutes et à tous,

    comme j'ai dit dans l'intitulé j'aimerais savoir comment je peux lancer la boite de dialogue enregistrer sous avec du java script on cliquant sur un bouton

    j'ai trouvé des chose en html mais mois je veux quelque chose en java script qui permet d'enregistrer juste un div dans une page html et pas la totalité de la page.

    ce que j'ai trouvé et le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="BUTTON" name="btnSave" value="Enregistrer" onclick="javascript:document.execCommand('SaveAs','true','monfichier.html')">
    il permet d'enregistrer la page monfichier.html complais.

    résumée:

    je veux un bouton qui permet d'enregistrer un div d'une page html en .xls

    merci d'avance.

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Le plus simple et sans jouer avec la sécurité sur le poste client, c'est de récupérer le code HTML de ta DIV, de l'envoyer vers le server vers un script qui le renverra aussitôt sous la forme d'un download vers le client, en précisant dans le header que c'est un document XLS.

    En PHP, quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    header('Content-Type: application/vnd.ms-excel;');
    header("Content-type: application/x-msexcel");
     
    header('Content-Disposition: attachment; filename="data.xls"');
     
    //$div est le contenu HTML de ton div
    echo $div;
    ?>

    ERE
    Quand une tête pense seule, elle devient folle.

  3. #3
    Membre régulier
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Points : 110
    Points
    110
    Par défaut
    bonsoir;
    ce que je veux c'est quelque chose comme document.print() mais qui permet d'enregistrer une page au lieu de l'imprimer,

    s'il existe en javascript c'est mieux si non comment je peux la faire.

    j'ai testé execCommand("SaveAs") mais ça marche seulement pour IE et pas d'autre.

    s'il y a une solution n'hésiter pas de m'aider

    merci.

  4. #4
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par kamclasse Voir le message
    bonsoir;
    ce que je veux c'est quelque chose comme document.print() mais qui permet d'enregistrer une page au lieu de l'imprimer,

    s'il existe en javascript c'est mieux si non comment je peux la faire.

    j'ai testé execCommand("SaveAs") mais ça marche seulement pour IE et pas d'autre.
    Non, à part utiliser les faiblesses d'IE en matière de sécurité, JavaScript ne peut pas faire ça.
    s'il y a une solution n'hésiter pas de m'aider

    merci.
    Ben, emmanuel.remy t'a donné une solution non ?
    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

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par kamclasse Voir le message
    bonsoir;
    ce que je veux c'est quelque chose comme document.print() mais qui permet d'enregistrer une page au lieu de l'imprimer,

    s'il existe en javascript c'est mieux si non comment je peux la faire.

    j'ai testé execCommand("SaveAs") mais ça marche seulement pour IE et pas d'autre.

    s'il y a une solution n'hésiter pas de m'aider
    avec la commande print tu as la boite de dialogue de l'imprimante qui s'ouvre. L'utilisateur peut toujours cocher la case "enregistrer dans un fichier"
    Ceci dit le javascript s'exécute côté client, tu ne peux pas décider des actions de l'utilisateur, tu dois passer par un langage serveur.

  6. #6
    Membre régulier
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Points : 110
    Points
    110
    Par défaut
    bonjour;

    bon je vais vous donnez mon code complais:

    dans une page enreg.php j'ai le div et une fonction javascript qui permet l'ouverture d'une popup:

    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
    <script language="javascript">
    var t ="";
    function enregister_zone()
        { 
        var Headers = '<!DOCTYPE HTML PUBLIC > <HTML> <HEAD> <title></title> </HEAD> <body>';
        var Footers = '</body></html>';
        var zi = document.getElementById("test").innerHTML; // pour remplir la popup.
        var t = window.open("", "Zonenre","height=600, width=1000,toolbar=1, menubar=1, scrollbars=1, resizable=1, status=0, location=0, left=10, top=10");
        var bot="<a href='?type=ok'> ici </a>"; // ce bouton activer la fonction de head fait appel à la même page.
    
        t.document.write ("" + Headers + zi + Footers);
    	t.document.write("" + bot);
        t.document.close();
        return;
        }
    </script>
    
    
    sssssssssssssssssssssssssssssssssss
    sssssssssssss
    <div id="test"> //mon div.
    
    <table align="center">
      <tr>
         <td>ffff</td>
    	 <td>ffffff</td>
      </tr>
      <tr>
         <td>fffffff</td>
    	 <td>ffffffffff</td>
      </tr>
      <tr>
         <td>ffffffffffff</td>
    	 <td>fffffff</td>
      </tr>
    </table>
    
    <?php 
    	// la fonction de .xls
    	if (!empty($_GET['type'])){
        header("Content-type: application/vnd.ms-excel");
    	header("Content-disposition: attachment; filename=NomDuFichierExcel".".xls");
    	exit;}
    ?>
    </div>
    
    
    <form action="" method="get">
    <input type="button" value="enre" name="enr" onclick="enregister_zone();" />
    
    
    
    </form>
    quand je fait enregistrer la page en .xls je trouve dans le fichier NomDuFichierExcel.xls "'; var Footers = '" dans mon code il'est en vert.

    donc il n'enregistre pas le div mais autre chose, je ne sais pas pourquoi .

    merci pour votre aide .

  7. #7
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut A ajuster, mais une piste...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form name="frm" action="doDownload.php" method="POST">
        <input type="hidden" name="div" />
    </form>
     
    function enregister_zone() { 
      document.frm.div.value = document.getElementById("test").innerHTML;
      document.frm.submit();
    }
    doDownload.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    $div = $_POST["div"];
     
    header('Content-Type: application/vnd.ms-excel;');
    header("Content-type: application/x-msexcel");
     
    header('Content-Disposition: attachment; filename="data.xls"');
     
    //$div est le contenu HTML de ton div
    echo $div;
    ?>
    ERE
    Quand une tête pense seule, elle devient folle.

  8. #8
    Membre régulier
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Points : 110
    Points
    110
    Par défaut
    merci beaucoup emmanuel.remy;

    il a marché

  9. #9
    Membre régulier
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Points : 110
    Points
    110
    Par défaut
    j'ai un autre problème c'est que dans la page j'ai une image, et dans le fichier .xls j'ai ce message qui s'affiche à la place de l'image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    impossible d'afficher l'image liée
    si vous avez une idée je l'en est besoin.

    merci.

  10. #10
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par kamclasse Voir le message
    j'ai un autre problème c'est que dans la page j'ai une image, et dans le fichier .xls j'ai ce message qui s'affiche à la place de l'image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    impossible d'afficher l'image liée
    si vous avez une idée je l'en est besoin.

    merci.
    Certainement en mettant l'URL complète dans la source de l'image:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="http://www.monsite.com/images/img1.png" />
    ERE
    Quand une tête pense seule, elle devient folle.

  11. #11
    Membre régulier
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Points : 110
    Points
    110
    Par défaut
    merci encore.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Boîte de dialogue "Enregistrer sous"
    Par TmDsbsBs dans le forum ASP.NET
    Réponses: 22
    Dernier message: 31/10/2013, 17h55
  2. Réponses: 1
    Dernier message: 15/06/2007, 17h37
  3. [VBA] Renseignements sur boite de dialogue "enregistrer sous"
    Par p'tite Sandrine dans le forum Access
    Réponses: 40
    Dernier message: 22/02/2007, 10h53
  4. boite de dialogue enregistrer sous
    Par maxeur dans le forum Access
    Réponses: 8
    Dernier message: 23/01/2007, 16h23
  5. Pb Boite de dialogue "enregistrer sous"
    Par tangueros dans le forum Access
    Réponses: 2
    Dernier message: 31/07/2006, 11h25

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