【发布时间】:2020-07-21 08:36:21
【问题描述】:
我想使用 iframe 打印取决于 $stud_no 的信息。当我在表中显示 iframe 时,它会生成正确的 $stud_no。但是当我单击打印按钮时,它只显示第一个 $stud_no。就像按钮没有在 admin_print-app-form-view.php
中获取 idadmin_print-app-form.php
<table id="dataTable2" class="text-center">
<thead class="text-capitalize">
<tr>
<th>NO.</th>
<th>LAST NAME</th>
<th>FIRST NAME</th>
<th>MIDDLE NAME</th>
<th>SEX</th>
<th>CONTACT NO.</th>
<th>ENTRY</th>
<th>ACTION</th>
</tr>
</thead>
<tbody>
<?php
$sql = "SELECT * FROM stud_acc";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$iframeId = 'studframe' . $row['stud_no'];
$stud_no = $row['stud_no'];
$lastname = $row['lastname'];
$firstname = $row['firstname'];
$middlename = $row['middlename'];
$sex = $row['sex'];
$contact = $row['contact'];
$entry = $row['entry'];?>
<tr>
<td><?php echo $stud_no ?></td>
<td><?php echo $lastname ?></td>
<td><?php echo $firstname ?></td>
<td><?php echo $middlename ?></td>
<td><?php echo $sex ?></td>
<td><?php echo $contact ?></td>
<td><?php echo $entry ?></td>
<td>
<iframe src="admin_print-app-form-view.php?id=<?php echo "$stud_no"?>" name="frame" id="<?= $iframeId ?>" style="visibility:hidden;height:0px;width:0px"></iframe>
<button type="button" class="btn btn-roundedtb btn-info" onclick="document.getElementById('<?= $iframeId ?>').print();"><i class="fa fa-print"></i><span class="icon-name"> Print</span></button>
</td>
</tr>
} }?>
</tbody>
</table>
admin_print-app-form-view.php
<?php
session_start();
include("connection.php");
$stud_no = $_GET['id'];
?>
【问题讨论】:
-
此代码将为所有生成的 iframe 赋予相同的名称和 ID。 ID 必须在文档中是唯一的。然后您可以使用该 ID 来定位您要打印的 iframe。现在,无论您单击哪个按钮,它似乎都在打印相同的 iframe。浏览器中没有任何魔法可以假设/猜测您实际尝试定位的 iframe 是什么。您必须明确定位特定的 iframe。
-
@MagnusEriksson 是的,你是对的。我不断得到相同的 iframe。但是当表中 iframe 的可见性没有被隐藏时,它会显示正确的 stud_no。为什么会这样?
-
您正在创建多个 iframe,并且您正在传递正确的值。问题只是你的 JS
frames['frame']总是引用同一个 iframe,这意味着你在每个按钮上打印同一个 iframe。
标签: javascript php iframe printing