Php 在foreach循环中打印div的内容
我在php中有一个foreach循环。现在我需要分别打印每条记录的div内容,现在我有以下内容:Php 在foreach循环中打印div的内容,php,javascript,Php,Javascript,我在php中有一个foreach循环。现在我需要分别打印每条记录的div内容,现在我有以下内容: <script type="text/javascript"> function printContent(div_id) { var DocumentContainer = document.getElementById("<?php echo $route->flightnum;?>"); var html = '<ht
<script type="text/javascript">
function printContent(div_id) {
var DocumentContainer = document.getElementById("<?php echo $route->flightnum;?>");
var html = '<html><head>' +
'</head><body style="background:#ffffff;">' + DocumentContainer.innerHTML +
'</body></html>';
var WindowObject = window.open("", "PrintWindow", "width=1000,height=1000,top=0,left=0,toolbars=no,scrollbars=yes,status=no,resizable=yes");
WindowObject.document.writeln(html);
WindowObject.document.close();
WindowObject.focus();
WindowObject.print();
//WindowObject.close();
document.getElementById('print_link').style.display = 'block';
}
</script>
函数printContent(div_id){
var DocumentContainer=document.getElementById(“”);
var html=''+
''+DocumentContainer.innerHTML+
'';
var WindowObject=window.open(“,”PrintWindow“,”宽度=1000,高度=1000,顶部=0,左侧=0,工具栏=no,滚动条=yes,状态=no,可调整大小=yes”);
WindowObject.document.writeln(html);
WindowObject.document.close();
WindowObject.focus();
WindowObject.print();
//WindowObject.close();
document.getElementById('print_link')。style.display='block';
}
然后我有以下几个部分:
<div id="brief_print" style="margin-left: 15px">
.
.
.
.
.
</div>
.
.
.
.
.
也许还有这样一个链接:
<a class="glow" style="text-decoration: underline;" href="javascript:printContent('<?php echo $route->flightnum;?>')"id='print_link'>Open in new window for printing</a>
我的问题是,当我点击链接时,我没有得到任何回报。请告诉我哪里错了。
谢谢
全部代码:
<?php
foreach($allroutes as $route)
{
?>
<tr>
<td onclick="$('#details_<?php echo $route->flightnum;?>').toggle('slow')">P</td>
<td style="padding:5px 10px" ALIGN="center"><?php echo $route->depicao;?></td>
<td style="padding:5px 10px" ALIGN="center"><?php echo $route->arricao;?></td>
<td style="padding:5px 10px" ALIGN="center"><?php echo $route->aircraft; ?></td>
<td style="padding:5px 10px"ALIGN="center"><?php echo $route->distance;?></td>
</tr>
<tr >
<td colspan="14"><div align="center">
<table cellspacing="0" width="100%" id="details_<?php echo $route->flightnum;?>" style="display:none">
<tr><th style="padding:5px 10px"><div align="center">Flight Details</div></th></tr>
<tr><td>
<section>
<?php
if(!isset($_GET['newwindow']))
{
?>
<a class="glow" style="text-decoration: underline;" href="javascript:printContent('<?php echo $route->flightnum;?>')"id='print_link'>Open in new window for printing</a>
<script type="text/javascript">
function printContent(div_id)
{
var DocumentContainer = document.getElementById("<?php echo $route->flightnum;?>");
var html = '<html><head>'+'</head><body style="background:#ffffff;">'+ DocumentContainer.innerHTML+ '</body></html>';
var WindowObject = window.open("", "PrintWindow","width=1000,height=1000,top=0,left=0,toolbars=no,scrollbars=yes,status=no,resizable=yes");
WindowObject.document.writeln(html);
WindowObject.document.close();
WindowObject.focus();
WindowObject.print();
//WindowObject.close();
document.getElementById('print_link').style.display='block';
}
</script>
<?php
}
?>
<div id="brief_print" style="margin-left: 15px">
<pre>
<b>Departing</b> : <?php echo $schedule->depname ?>
<b>Arriving</b> : <?php echo $schedule->arrname ?>
<b>Equipment</b> : <?php echo $schedule->fullname;?>
<b>Alternate</b> : <?php echo $alternate1; ?>
<b>Alternate</b> : <?php echo $alternate2; ?>
<b>Alternate</b> : <?php echo $alternate3; ?>
</pre>
</div>
</section>
</td></tr>
</table>
</div>
<?php
}
?>
你的代码有一些大问题。你似乎不明白在何时何地发生了什么。让我试着解释一下
当客户机访问网站时,他们的浏览器会向您的托管服务器发送页面请求。主机服务器执行PHP代码,生成要发送到客户端浏览器的页面源代码。因此,在PHP完成执行之前,页面不会发送回客户端浏览器。此时未执行任何JavaScript代码
一旦页面被发送到浏览器(PHP被完成),JavaScript就会接管。JavaScript在客户端执行
因此,一旦理解了这一点,您就会意识到,如果不向服务器发出新请求,显然无法从JavaScript调用PHP
尝试在浏览器中打开页面并查看源代码。您将看到,您正在为每个循环迭代定义一次JS函数printContent()
。您还缺少第二个
和
标记的结束标记(在上一个
之后添加一个额外的
)。当您查看源代码以查看PHP代码产生的内容时,您可能会意识到所有其他问题。我认为您做得不对,在PHP(服务器端)和javascript(客户端)之间进行了混合。您可能不需要javascript中的该函数,并且可以在PhP中执行所有操作“当我点击链接时,我不会得到任何回报”
-您可以更具体一些吗?浏览器中实际呈现的是什么?您的PHP代码在客户端生成什么?它以何种具体方式失败?PHP在服务器端执行。因此,在将页面传输到客户端之前,PHP已经完成了处理。Javascript在客户端执行。因此,如果不使用AJAX之类的工具对服务器进行新的调用,就无法通过JS与PHP交互。查看浏览器中的视图源输出。你不会在那里看到任何PHP。谢谢你的回复。好的,php代码使用foreach()循环从数据库返回记录,在循环中,我希望能够打印表的内容,但每次都会有所不同。如果我选择id作为“details”这样的名称,那么只有第一条记录会传递给函数,因为所有其他记录都是相同的。!!:(@ParvizKhorraminejad:因此,请选择每行唯一的id。显示更多PHP代码。