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 :

Tableau HTML dans une POPUP


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Tableau HTML dans une POPUP
    Bonjour,

    Je voudrais faire un aperçu avant impression de mon tableau HTML et j'ai un soucis avec ma 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
    function Popup(){
    	var tableau = document.getElementById("tableauCarte");
     
    	var donnee = tableau.innerHTML;
     
    	var maFenetre = window.open('', 'Mon catalogue de télécartes');
    	maFenetre.document.write('<html><head><title>Mon catalogue de télécartes</title>');
    	maFenetre.document.write('<link rel="stylesheet" href="style.css" type="text/css" />');
    	maFenetre.document.write('</head><body><table id="tableauCarte">');
    	maFenetre.document.write(donnee);
    	maFenetre.document.write('</table></body></html>');
    	maFenetre.print();
    	maFenetre.close();
    }
    Quand elle s’exécute elle m'ouvre une fenêtre popup avec mon tableau html mais celui ci étant plus grand qu'une page est couper en plein milieu de cellule !

    Merci d'avance pernotjln.

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Salut essaye en incluant une balise style avec media screen.
    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
     
    function Popup(){
    	var tableau = document.getElementById("tableauCarte");
     
    	var donnee = tableau.innerHTML;
     
    	var maFenetre = window.open('', 'Mon catalogue de télécartes');
    	maFenetre.document.write('<html><head><title>Mon catalogue de télécartes</title>');
            maFenetre.document.write('<style>@media screen{table{display:block;visibility:visible;}}');
    	maFenetre.document.write('<link rel="stylesheet" href="style.css" type="text/css" />');
    	maFenetre.document.write('</head><body><table id="tableauCarte">');
    	maFenetre.document.write(donnee);
    	maFenetre.document.write('</table></body></html>');
    	maFenetre.print();
    	maFenetre.close();
    }
    Je n'ai pas testé, mais l'idée est au niveau du style.

    Bonne soirée

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'ai essayer avec ce code mais c'est toujours la même chose, le tableau est mal découpé. ^^

    PS : tu as oublié de refermer la balise style, j'ai galéré à le voir, mon tableau ne s'affichait plus. xD

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Attention à l'ouverture de la fenêtre
    Toujours tester si la fenêtre c'est ouverte
    sinon le script peut planter complètement

    de façon générale en programmation quelque soit le langage (même en javascript) on n'utilise un objet uniquement lorsqu'on a la garantie qu'il existe.

    donc dans ton code 1°) getElementById peut te retourner null
    et 2°) la fenêtre à peut être été bloqué par l'utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function Popup(){
    	var tableau = document.getElementById("tableauCarte");
    	if(tableau)
    		var donnee = tableau.innerHTML;
    	}
     
    	var maFenetre = window.open('', 'Mon catalogue de télécartes');
    	if (maFenetre) {
    		...
    	}
    }
    A+JYT

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    perso je passerais par un popin et pas un popup ...
    du coup pour le print on bascule tous les élements de la page en display none pour le media screen et print, puis juste le popin en display block pour le popin en media print

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 677
    Points
    44 677
    Par défaut
    Bonjour,
    il existe au moions, 2 solutions
    - CSS3 Module: Paged Media
    - le formatage de la sortie à la "mano" fonction des données disponibles en intégrant des page-break-after: always au bon endroit.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci de vos réponses j'ai modifié mon code pour la vérification de l'existence du tableau et de la fenêtre.

    je pense faire avec des page-break-after mais je ne sais pas ou les mettre ?

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 677
    Points
    44 677
    Par défaut
    Fais des tests de pagination pour voir ce que tu peux imprimer par page, gère une feuille de style pour media="print"...

  9. #9
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    de toute façon tu ne peux pas maitriser l'espace disponible sur la page de paprier du client

    donc la pagination ce ne peut être que très approximative
    je dirais même qu'elle peut être très génante

    par exemple du décide de couper ton texte à une ligne n parce ce qu'à la ligne n+1 commence un nouveau paragraphe.

    si l'espace sur le papier du client et trop petite il se retrouve avec la ligne n seule sur une page.

    que vaut-il mieux avoir des chapitres coupés ou des ligne isolées sur des pages ?

    certaine imprimantes ont des marges incontrounable (du fait du matériel)
    d'autre sont capable d'imprimer sans marges.

    A+JYT

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci a tous de vos réponse ! Je pense que je vais passer par une lib php qui me fera sa en pdf j'ai vu des exemples qui me convienne xD

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

Discussions similaires

  1. [MySQL] Tableau HTML dans une boucle while
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 17/01/2011, 15h29
  2. Réponses: 2
    Dernier message: 25/05/2009, 09h38
  3. Réponses: 2
    Dernier message: 10/01/2007, 17h06
  4. Affichage d'un tableau perl dans une page HTML
    Par Jim_Nastiq dans le forum Web
    Réponses: 7
    Dernier message: 13/04/2006, 11h27
  5. Ecrire dans un tableau html depuis une fonction js ?
    Par botanica dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/10/2005, 12h48

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