试图一次显示多个 php 文件,连续
Trying to display multiple php files at once, in a row
我目前有一个显示打印发票的页面。我想创建一个页面,我可以在其中输入多张发票,以便我可以打印多张发票。当然,我可以只复制代码并在新文件中循环它,但我认为只调用其他页面并在一个页面上 assemble 它们可能更容易。我看到一些类似的代码,并尝试修改它,但我在控制台中不断收到错误:
Uncaught SyntaxError: Unexpected token ILLEGAL
也许只有 php 才有办法做到这一点?
我 post 此 php 文件的一组发票:
<?php
$invoiceList = $_POST["invoiceRequest"];
$invoices = explode("\n", $invoiceList);
echo '<html>';
echo '</head>';
echo '<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>';
echo '<script type="text/javascript">';
echo '$(document).ready(function(){';
foreach($invoices as $page) {
echo "$.get('ajax/invoices/invoicePrint.php?invoiceId=".$page."').success(function(html) {
$('#page".$page."').html(html);
});";
}
echo '});';
echo '</script>';
echo '</head>';
echo '<body>';
foreach($invoices as $page) {
echo '<div id = "page'.$page.'"></div>';
}
echo '</body>';
echo '</html>';
?>
您可以使用 cURL 代替 ajax 来获取文档
http://php.net/manual/en/book.curl.php
另一种选择是简单地使用 file_get 内容
http://php.net/manual/en/function.file-get-contents.php
echo file_get_contents('ajax/invoices/invoicePrint.php?invoiceId='.$page);
exploding
post \n
的数据可能会在数组值中留下一些不需要的字符(如 \r
,这也将被解释为换行并导致 Unexpected token ILLEGAL
错误)。要回答这个特定问题,我建议您 trim()
值。
您还可以通过使其更短和更清晰来改进您的实际代码。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".invoice").each(function(){
$(this).load("ajax/invoices/invoicePrint.php?invoiceId="+$(this).data('invoiceid'));
});
});
</script>
</head>
<body>
<?php foreach(explode("\n", $_POST["invoiceRequest"]) as $page): ?>
<div data-invoiceid="<?php echo trim($page); ?>" class="invoice"></div>
<?php endforeach; ?>
</body>
</html>
我目前有一个显示打印发票的页面。我想创建一个页面,我可以在其中输入多张发票,以便我可以打印多张发票。当然,我可以只复制代码并在新文件中循环它,但我认为只调用其他页面并在一个页面上 assemble 它们可能更容易。我看到一些类似的代码,并尝试修改它,但我在控制台中不断收到错误:
Uncaught SyntaxError: Unexpected token ILLEGAL
也许只有 php 才有办法做到这一点?
我 post 此 php 文件的一组发票:
<?php
$invoiceList = $_POST["invoiceRequest"];
$invoices = explode("\n", $invoiceList);
echo '<html>';
echo '</head>';
echo '<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>';
echo '<script type="text/javascript">';
echo '$(document).ready(function(){';
foreach($invoices as $page) {
echo "$.get('ajax/invoices/invoicePrint.php?invoiceId=".$page."').success(function(html) {
$('#page".$page."').html(html);
});";
}
echo '});';
echo '</script>';
echo '</head>';
echo '<body>';
foreach($invoices as $page) {
echo '<div id = "page'.$page.'"></div>';
}
echo '</body>';
echo '</html>';
?>
您可以使用 cURL 代替 ajax 来获取文档 http://php.net/manual/en/book.curl.php
另一种选择是简单地使用 file_get 内容
http://php.net/manual/en/function.file-get-contents.php
echo file_get_contents('ajax/invoices/invoicePrint.php?invoiceId='.$page);
exploding
post \n
的数据可能会在数组值中留下一些不需要的字符(如 \r
,这也将被解释为换行并导致 Unexpected token ILLEGAL
错误)。要回答这个特定问题,我建议您 trim()
值。
您还可以通过使其更短和更清晰来改进您的实际代码。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".invoice").each(function(){
$(this).load("ajax/invoices/invoicePrint.php?invoiceId="+$(this).data('invoiceid'));
});
});
</script>
</head>
<body>
<?php foreach(explode("\n", $_POST["invoiceRequest"]) as $page): ?>
<div data-invoiceid="<?php echo trim($page); ?>" class="invoice"></div>
<?php endforeach; ?>
</body>
</html>