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

How to print contents of a php page that's included in a page as a jquery popup message

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

页面如下所示:

所以基本上我只想打印以 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>-->

非常感谢任何帮助!

为打印输出格式化的最佳方式与为屏幕格式化页面的方式相同:CSS。

在那里您可以定义仅用于打印的规则:

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

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

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

A more detailed tutorial i found online