如何打印包含在页面中的php页面的内容作为jquery弹出消息

时间:2015-04-21 17:01:03

标签: php jquery mysql printing php-5.3

所以我有一个php页面根据来自另一个页面的输入回显结果,我已经成功地将它显示在要显示的页面上但我需要它才能打印一个打印按钮php脚本显示的内容而不是整个页面。但我不知道该怎么做。

以下是页面的外观:

enter image description here

所以基本上我只想打印弹出消息中的内容,从Class 3T ..等开始。

这是PHP脚本的代码:

<?php

// HTML table
// Organized by Class, add Teacher name
// SUBJECT | CONTENT OF ASSIGNMENT | DUE DATE

include_once "../config/config.php";

$teacherId = $_POST['teacher_id'];

$sql = "SELECT
        c.id as classID, c.name as className,
        u.l_name as lastName, u.f_name as firstName
        FROM classroom AS c
        LEFT JOIN teacher AS t ON c.hr_teacher_id = t.id
        LEFT JOIN user AS u on t.user_id = u.id
        WHERE c.hr_teacher_id = '$teacherId'";

$result = $conn->query($sql);
$class_results = $result->fetchAll();

//var_dump($class_results);

for($i = 0; $i < sizeof($class_results); ++$i ){
    echo ('<h2>'.$class_results[$i]['className'].' - '.$class_results[$i]['lastName'].', '.$class_results[$i]['firstName'].'</h2>');

    $sql2 = "SELECT
            s.name AS subjectName, 
            sa.content AS subjectAssignmentContent, 
            sa.due_date AS dueDate
            FROM classroom AS c
            LEFT JOIN subject_class AS sc on c.id = sc.classroom_id
            LEFT JOIN subject AS s ON s.id = sc.subject_id
            LEFT JOIN subject_assignment AS sa on sc.id = sa.subject_class_id
            LEFT JOIN assignment AS a on a.id = sa.assignment_id
            WHERE c.id = '".$class_results[$i]['classID']."'
            AND DATE(a.date) =  DATE(NOW())
            ORDER BY s.name";


    $result2 = $conn->query($sql2);

    $class_assignments = $result2->fetchAll();

    if(sizeof($class_assignments)==0) { echo ('<p>No assignments for this class today.</p>');}
    else {
        echo('<table style="border-style: solid; border-width: 1px;">'."\n");
        for($j = 0; $j < sizeof($class_assignments); ++$j ){
            echo('<tr style="border-style: solid; border-width: 1px;">'."\n");
            echo('<td style="border-style: solid; border-width: 1px;">'.$class_assignments[$j]['subjectName'].'</td>'."\n");
            echo('<td style="border-style: solid; border-width: 1px;">'.$class_assignments[$j]['subjectAssignmentContent'].'</td>'."\n");
            echo('<td style="border-style: solid; border-width: 1px;">'.$class_assignments[$j]['dueDate'].'</td>'."\n");
            echo('</tr>'."\n");
        }
        echo('</table>'."\n");
    }
}
?>

<!-- This doesn't work because it prints everything in the page -->
<!--<button onClick="window.print()">Print this page</button>-->

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

格式化输出以进行打印的最佳方法是为屏幕格式化页面的相同位置:CSS。

在那里,您只能为以下内容定义打印规则:

@media print {
   /* Your Print Styles here */
}

在您的示例中,您可以隐藏(display: none)您不想要打印的所有内容。

无论打印如何启动(Strg + P,浏览器按钮,您的JS片段),打印预览都将遵循特定于打印的CSS规则。

A more detailed tutorial i found online