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

PHP & Base de données Discussion :

imprimer des pages specifiées


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 204
    Par défaut imprimer des pages specifiées
    Bonjour
    s'il vous plait si vous pouvez m'aider.

    j'ai fait un affichage par page, j'ai 50 page chaque page contien 20 enregistrement et je clique sur le numero de page pour acceder à la page voulu.


    mais le probleme est à l'impressiopn quan je lance l'impression il m'imprime seulement la page courante meme si je dit imprimer tout.

    comment faire pour imprimer tout les page car ce n'est plus pratique que à chaque fois il faut selectionner la page pour imprimer , on a des fois plus que 2000 etudiant(100pages).

    soi imprimer tout les page ou plutot spécifier les page .

    un bouton imprimer me donne une boite là ou je selectionne dela page.... à la page ...

    voilà les fonctions que j'ai utilisé pour l'affichage par page

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    //récupération de $limite
        if(isset($_GET['limite'])) 
            $limite=$_GET['limite']; 
     elseif(isset($_POST['limite'])) 
            $limite=$_POST['limite']; 
       else   $limite=0;
     
    function verifLimite($limite,$total,$nombre) {//0,100,10
        // je verifie si limite est un nombre.
        if(is_numeric($limite)) {
     
    // si $limite est entre 0 et $total, $limite est ok
            // sinon $limite n'est pas valide.
            if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) {
                // j'assigne 1 à $valide si $limite est entre 0 et $max
                $valide = 1;
            }    
            else {
                // sinon j'assigne 0 à $valide
                $valide = 0;
            }
        }
        else {
                // si $limite n'est pas numérique j'assigne 0 à $valide
                $valide = 0;
        }
    // je renvois $valide
    return $valide;
    }
    //affichage boutons suivant precedent
    function displayNextPreviousButtons($ncr,$ian,$fil,$cre,$cr,$limite,$total,$nb,$page) {//$limite,$total,$nb,$page
     
    $limiteSuivante = $limite + $nb;
    $limitePrecedente = $limite - $nb;
    echo  '<table><tr>'."\n";
    if($limite != 0) {
            echo  '<td valign="top"><div align="center">'."\n";
            echo  '<form action="'.$page.'" method="post">'."\n";
    		echo  "<input name='ncrefd' type='hidden' id='ncrefd' value='".$ncr."'>"."\n";
    		echo  "<input name='crefd' type='hidden' id='crefd' value='".$cre."'>"."\n";
    		echo  "<input name='iannee' type='hidden' id='iannee' value='".$ian."'>"."\n";
    		echo  "<input name='fil' type='hidden' id='fil' value='".$fil."'>"."\n";
    		echo  "<input name='cr' type='hidden' id='cr' value='".$cr."'>"."\n";
    echo  "<input name='nb' type='hidden' id='nb' value='".$nb."'>"."\n";
    echo  "<input name='page' type='hidden' id='page' value='".$page."'>"."\n";
    echo  "<input name='total' type='hidden' id='total' value='".$total."'>"."\n";
     
     
     
            echo  '<input type="submit" value="précédents">'."\n";
            echo  '<input type="hidden" value="'.$limitePrecedente.'" name="limite">'."\n";
            echo  '</form>'."\n";
            echo  '</div></td>'."\n";
    }
    if($limiteSuivante < $total) {
            echo  '<td valign="top"><div align="center">'."\n";
            echo  '<form action="'.$page.'" method="post">'."\n";
    		echo  "<input name='ncrefd' type='hidden' id='ncrefd' value='".$ncr."'>"."\n";
    		echo  "<input name='crefd' type='hidden' id='crefd' value='".$cre."'>"."\n";
    		echo  "<input name='iannee' type='hidden' id='iannee' value='".$ian."'>"."\n";
    		echo  "<input name='fil' type='hidden' id='fil' value='".$fil."'>"."\n";
    		echo  "<input name='cr' type='hidden' id='cr' value='".$cr."'>"."\n";
    echo  "<input name='nb' type='hidden' id='nb' value='".$nb."'>"."\n";
    echo  "<input name='page' type='hidden' id='page' value='".$page."'>"."\n";
    echo  "<input name='total' type='hidden' id='total' value='".$total."'>"."\n";
            echo  '<input type="submit" value="suivants ">'."\n";
            echo  '<input type="hidden" value="'.$limiteSuivante.'" name="limite">'."\n";
            echo  '</form>'."\n";
            echo  '</div></td>'."\n";  
     
    }
    echo  '</tr></table>'."\n";
    }
     //affichage par page
    function affichePages($ncr,$ian,$fil,$nb,$page,$total,$cre,$cr) {
            $nbpages=ceil($total/$nb);
            $numeroPages = 1;
            $compteurPages = 1;
            $limite  = 0;
            echo '<table border = "0" ><tr>'."\n";
            while($numeroPages <= $nbpages) {
            echo '<td ><a href = "'.$page.'?limite='.$limite.'&ncrefd='.$ncrefd.'&crefd='.$crefd.'&cr='.$cr.'&fil='.$fil.'&iannee='.$iannee.'">'.$numeroPages.'</a></td>'."\n";
            $limite = $limite + $nb;
            $numeroPages = $numeroPages + 1;
            $compteurPages = $compteurPages + 1;
                if($compteurPages == 10) {
                $compteurPages = 1;
                echo '<br>'."\n";
                }
            }
            echo '</tr></table>'."\n";
    }
    ?>
    </body>
    </html>

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    Salut,


    C'est toi qui a écrit ce code ?? Certes il est commenté mais pas très lisible... Et mettre du html de la sorte directement dans des fonctions avec des noms de variables pas super clair, bonjour le debug...

    Rien que la fonction displayNextPreviousButtons à 8 arguments, j'avais jamais imaginer qu'il en fallait autant dans une pagination...

    Essaye de revoir le code en séparant le traitement php de l'affichage. (tu commence par le traitement et ensuite tu gères l'affichage).


    j'espère juste pour toi que tu n'a pas un fichier fonction.php de 20Mo qui gère l'ensemble

  3. #3
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    mais le probleme est à l'impressiopn quan je lance l'impression il m'imprime seulement la page courante meme si je dit imprimer tout.
    Le problème majeur, c'est que tu souhaite une chose et son contraire en même temps.
    C'est à dire que tu as mis en place un système de pagination (donc une seule page est affichée au lieu de toutes) qui fait qu'il sera impossible que le navigateur imprime du contenu non présent (ou visible) dans la page Web.

    Il ne faut pas perdre de vue que le contenu généré par Php sera renvoyé via HTTP (le Net) vers le poste client (navigateur).
    Donc si le contenu généré n'est pas complet, le navigateur ne pourra pas traiter des données qui n'existent pas.


    La seule solution que je vois (et la plus simple), de prévoir un bouton "Imprimer" qui aura pour effet de recharger la page, et du coup, récupérer cette info (le fait de vouloir imprimer) et donc de shunter (ou court-circuiter) la pagination, donc de tout afficher.
    Mais au niveau du BODY, lancer un code JS du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="window.print()">

    Coté mise en forme, il est possible de faire des trucs plus ou moins avancés via du CSS en jouant sur les différents médias : (print, screen, etc ...).
    Mais là, ça demande à se pencher dessus un peu (beaucoup).


    Mais encore, si on souhaite offrir les 2, soit une navigation de page en page (la pagination) mais en parallèle tout le contenu de cette pagination, une autre solution serait de créé un document PDF.
    Certes, c'est plus compliqué, mais ça peu offrir une excellente alternative vu que ce format est devenu un vrai standard.

Discussions similaires

  1. [XL-2010] Excel imprime des pages blanches
    Par shubakas dans le forum Excel
    Réponses: 11
    Dernier message: 02/10/2012, 23h35
  2. Version imprimée des pages web
    Par krislec dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 04/07/2011, 20h43
  3. Imprimer des pages d'un en .pdf
    Par tibogaet dans le forum IHM
    Réponses: 1
    Dernier message: 02/07/2008, 18h08
  4. Imprimer des pages dans un tabcontrol
    Par maxmarie dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/06/2008, 20h31
  5. [Imprimante HP EPL5800L] imprime des pages blanches toute seule
    Par devlopassion dans le forum Périphériques
    Réponses: 6
    Dernier message: 21/10/2007, 15h45

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