Aiuto pulsante stampa

rostrato

Utente Attivo
20 Set 2012
34
0
0
Salve al 3d,
ho creato una pagina .php che a video fa vedere una tabella contenente 3 colonne con dei dati all'interno di ogni cella.
Non riesco a capire come fare per costruire e posizionare un pulsante "Stampa" per far stampare su carta (A4) tutta la tabella e nel caso in cui la stessa fosse piu' lunga del foglio,dividerla in modo ordinato e consequienziale.
Posto ,nel caso in cui servisse il codice php:

PHP:
<?php
include_once("area_riservata.php");
require_once ("../include/valori.php");
mysql_connect("$DBHost","$DBUser","$DBPass");
mysql_select_db("$DBName");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Amministrazione</title>
<link href="../css/admin.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="page">
    <div class="img_page"></div>
        <div class="form_page">
        <h1><a href="index.php">Pannello d'Amministrazione</a></h1>
        <h3><strong>Venduto lista</strong></h3> 
        <br />
        <center>I campi contrassegnati in <strong class="obbligatorio">verde *</strong> sono obbligatori</center>
        <br /><br /> 
        <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST" enctype="multipart/form-data">                                                                                                  
        <fieldset class="form_admin">                                    
        <legend>Coppia di Sposi *</legend>
        <div id="form_admin">
        <center>
        <span class="obbligatorio">
        <select name="id_lista">
        <option value=""></option>
<?php
        $result2=mysql_query("SELECT * FROM sposi ORDER BY id DESC");
        while ($row2= mysql_fetch_array ($result2)) {
        //devo mettere le mani sul value trasmesso, quindi prima lo formo
        $valore=$row2['id']."|".html_entity_decode($row2['nome_sposo'])." - ".html_entity_decode($row2['nome_sposa']);
        //cioè trasmetto es. 37|asdrubale - sofonisba poi dalla parte di php li rigenero
?>
            <option value="<?php echo $valore; ?>" <?php if ($id_lista==$row2['id']){ echo 'selected="selected"'; } ?> /><?php echo 

html_entity_decode($row2['nome_sposo'])." - ".html_entity_decode($row2['nome_sposa']);  ?></option>  
<?php
        }    
?>    
        </select>
        </span>
        </center>
        </div>
        </fieldset>
<?php
if(isset($_POST['invia'])){
    $lista=explode("|",$_POST['id_lista']);//qui li separo
    //in $lista[0] mi ritrovo l'id es. 37
    //in $lista[1] mi ritrova es. asdrubale - sofonisba
    $query = "SELECT qta_venduta, descrizione, prezzo FROM articoli WHERE id_lista='".$lista[0]."'";
    $result = mysql_query($query);
echo "Dati relativi alla lista: ".$lista[1]."<br>";
    if(mysql_num_rows($result)>0){
        echo "<table border='1'>";
        echo "<tr>";
        echo "<td>Quantita</td>";
        echo "<td>Descrizione</td>";
        echo "<td>Totale</td>";
        echo "</tr>";
        while ($row = mysql_fetch_array($result)) {
            $qta = $row['qta_venduta'];
            $prezzo = $row['prezzo'];
            $totale = $qta * $prezzo;
            echo "<tr>";
            echo "<td>" . $qta . "</td>";
            echo "<td>" . $row['descrizione'] . "</td>";
            echo "<td>" . number_format ($totale, 2) . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    }else{
        echo "non ci sono record";
    }
}
?>
        <input type="submit" name="invia" value="I N V I A" />
        </form>                              
<?php include "footer.php" ?>
</div>
</div>
</body>
</html>
 
Ciao,
esiste il metodo print() in javascript
HTML:
<input type="button" value="Stampa" onclick="window.print()"/>
 
ciao
ma il js, credo, ti stampa tutta la schermata quindi anche il form.
quindi secondo me devi farti un css per la stampa (mi sembra che tu debba dare il media=print) in cui tra le altre istruzioni (sempre secondo me) devi mettere
form{visibility: hidden;} o dyspaly: none;
ci vorrebbe qualcuno che si ricordasse i css meglio di me
 
oppuresi potrebbe aprire una popup che contenga solo la tabella da stampare
e mettere nel body questa istruzione
HTML:
<body onload="window.print()">
 
ciao
ho fatto questa piccola prova
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
<style type="text/css" media="print">
.rosso{ background-color:#FFFFFF;}
.nascosta{display:none;}
</style>
<style type="text/css" media="screen">
.rosso{ background-color: #000000;}
</style>
</head>
<body>
<table width="80%"  border="1" cellspacing="0" cellpadding="0" class="nascosta">
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
<p>&nbsp;</p>
<table width="80%"  border="1" cellspacing="0" cellpadding="0" class="rosso">
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>

<input type="button" value="Stampa" onclick="window.print()"/>
</body>
</html>
a video si vedono entrambe le tabelle la seconda con bck nero, al comando di stampa si stampa solo la seconda senza bck
quindi potresti dare al form la class="nascosta" e non viene (non dovrebbe) stampato
 
borgo italia ha scritto:
a video si vedono entrambe le tabelle la seconda con bck nero, al comando di stampa si stampa solo la seconda senza bck
quindi potresti dare al form la class="nascosta" e non viene (non dovrebbe) stampato

questa non la sapevo :fonzie:

la proverò il prima possibile
 
No ragazzi , cosi' non e' propio cosa!
Forse sarebbe meglio davvero un pop up che contenesse dati relativi alla coppia e solo la tabella. Ma a farlo...........
 
ciao
perchè dici che non va?
se provi questo vedrai a monitor tutto, dopo l'inserimento e il submit ti appare il pulsante di stampa e se dai il comando di stampa ti stampa solo il testo inserito dentro la table.
qui evidentemente ho semplificato, ma il concetto è quello
PHP:
<?php
/* include_once("area_riservata.php");
require_once ("../include/valori.php");
mysql_connect("$DBHost","$DBUser","$DBPass");
mysql_select_db("$DBName");*/
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>prova stampa</title>
<!-- <link href="../css/admin.css" rel="stylesheet" type="text/css" /> -->
<style type="text/css" media="print">
.nascosto{display:none;}
</style>
</head>
<body>
<form action="#" method="post" class="nascosto">
  <p><input name="testo" type="text" id="testo"></p>
  <p><input name="invia" type="submit" id="invia" value="Invia"></p>
</form>
<?php
if(isset($_POST['invia'])){
	echo "<table width=\"80%\"  border=\"1\" cellpadding=\"0\" cellspacing=\"0\">";
	echo "<tr><td>testo inviato: ".$_POST['testo']."</td></tr>";
	echo "<tr><td><input type=\"button\" value=\"Stampa\" onclick=\"window.print()\" class=\"nascosto\"/></tr></td></tr>";
	echo "</table>";
}
?>
</body>
</html>
 

Discussioni simili