Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在foreach循环中打印div的内容_Php_Javascript - Fatal编程技术网

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

我在php中有一个foreach循环。现在我需要分别打印每条记录的div内容,现在我有以下内容:

<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代码。