我想使用 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> </td> </tr> } }?> </tbody></table>admin_print-app-form-view.php<?php
session_start();
include("connection.php");
$stud_no = $_GET['id'];
?>这是打印预览。红圈中的数字应该是我点击的$stud_no,但它总是给我第一个stud_no
1 回答
aluckdog
TA贡献1847条经验 获得超7个赞
问题是,当您为每个 iframe 提供相同的名称和 id 时,javascript 只会为您提供它找到的第一个匹配项,并为所有按钮返回相同的 iframe。
我们需要给它们唯一的 ID(我们可以完全跳过名称)。
注意:此代码假定stud_no是唯一值,如表主键。
在你的while-loop中,创建一个唯一的id:
while($row = $result->fetch_assoc()) {
// Create a unique id using the stud_no
$iframeId = 'studframe' . $row['stud_no'];
现在给 iframe 指定 id:
<iframe ... id="<?= $iframeId ?>" ... ></iframe>
并确保按钮引用该 id:
<button ... onclick="document.title=''; document.getElementById('<?= $iframeId ?>').print();">...</button>
在上面的代码中,我通过添加前缀来创建唯一的 id,studframe然后添加 ,stud_no使其成为id="studframe1",id="studframe2"依此类推。
然后,当引用该特定 iframe 时,我们将根据该唯一 id 获取 iframe。
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消