Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Stampa div in base al pulsante stampa cliccato

    Ciao a tutti

    io in una pagina ho 3 div con 3 relativi tasti stampa sotto ogni div!

    Vorrei far stampare il singolo div cliccando il relativo tasto stampa...

    come posso fare?


    grazie
    Paolo

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non puoi farlo con solo i CSS. Ti serve un minimo di JS.

    Devi dare
    display: none;
    a tutti i blocchi che non vuoi stampare. Puoi farlo con un CSS specifico per la stampa, ma questo non puo` discriminare tra i vari bottoni sulla pagina: per quello ci vuole JS.

    Quando hai risolto la parte CSS del problema, spostiamo la discussione nel forum JS.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    <div id="spazio1">...</div><button onclick="stampa(1);">
    <div id="spazio2">...</div><button onclick="stampa(2);">
    <div id="spazio3">...</div><button onclick="stampa(3);">

    JS:
    codice:
    function stampa(n) {
      for (var i=1; i<=3; i++) {
        document.getElementById('spazio'+i).style.display = (i==n) ? 'block' : 'none';
      }
      document.print();
    }
    Spero di non aver fatto errori.
    Sposto comunque nel forum JS.

    Poi occorre vedere cosa deve fare il browser dopo la stampa: con questo codice non ripristina la pagina originale.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    ho inserito quello che mi hai scritto!

    Quando clicco su stampa mi fa vedere giustamente solo il div selezionato, però non parte la stampa... come mai?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Sono infatti un po' arrugginito sul JS.

    Prova con
    window.print();

    Ma dicci anche con quale browser stai testando: in alcuni browser document.print() funziona (cioe` funzionava qualche anno fa, quando mi occupavo di JS).

    Inoltre occorre vedere se il browser e` configurato correttametne per la stampa.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    perfetto con window.print!

    Domanda... visto che il codice js fa visualizzare il div scelto e poi bisogna cliccare aggiorna per tornare alla pagina completa, si può fare in modo che dopo aver cliccato stampa, la pagina faccia un refresh?


    Ho fatto così...sembra funzionare, ma la sintassi è corretta?

    <script>

    function stampa(n) {
    for (var i=1; i<=4; i++) {
    document.getElementById('spazio'+i).style.display = (i==n) ? 'block' : 'none';
    }
    window.print();
    window.location.reload();
    }

    </script>

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Tecnicamente si puo` fare. La tua sintassi e` corretta.
    Pero` poi probabilmente il reload viene eseguito prima della stampa, per cui verrebbe stampata la pagina intera.

    Potresti fare un reload con ritardo:
    window.setTimeout("window.location.reload()", 20000); // ritardo 20 secondi
    ma anche questo e` un po' pericoloso (la stampa richiede comunque l'intervento dell'utente, e non puoi sapere quanto questi impiega a dare l'OK).
    Tieni presente che browser diversi si possono comportare in modo diverso quando avviene una sovrapposizione temporale dei comandi.

    Comunque immagino che questi problemi siano gia` stati afforntati in questo forum. Prova con una ricerca nel forum (bottone in alto).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    ok grazie verificherò!

    Con firefox, finchè non do ok per la stampa non mi fa il refresh e così sarebbe perfetto... adesso provo con altri browser!


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.