如何将包含在页面中的 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 规则。
所以我有一个 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 规则。