gpt4 book ai didi

javascript - 在ajax成功的单独页面中打印每个循环记录

转载 作者:行者123 更新时间:2023-11-29 18:48:42 25 4
gpt4 key购买 nike

如何在单独的页面中打印循环的每条记录,同时通过ajax和PHP获取数组中的数据。 IE我希望每个页面都有 row1 数据,而 row2 数据在单独页面中的每条记录。尝试以下脚本,没有给出预期的结果。

var response = {
row1: [{group: 'Group A'}],
row2: [
{team: 'Team A', player: 'Jema', result: 43},
{team: 'Team B', player: 'Deno', result: 34},
{team: 'Team B', player: 'Niob', result: 56},
{team: 'Team B', player: 'Skion', result: 49},
],
};

$("#group").html(response.row1.group);

var cats = {};
response.row2.forEach(function(element) {
cats[element.team] = cats[element.team] || [];
cats[element.team].push(element);
});

Object.keys(cats).forEach(function(team) {
let html = '';
html = '<tr>';
html += '<td>' + team + '</td>';
html += '</tr>';
$('table').append(html);

// Loop through the results for this category
cats[team].forEach(function(element) {
var names = element.player;
var result = element.result;

html = '<tr>';
html += '<td>' + names + '</td>';
html += '<td><input type="text" value="' + result + '"></td>';
html += '</tr>';
$('table').append(html);
});

// Append the textarea at the end of the results
html = '<tr>';
html += '<td><textarea placeholder="textarea..."></textarea></td>';
html += '</tr>';
$('table').append(html);
});
var PrintThis = document.getElementById('print');
var PrintStyle = '<style type="text/css">' +
'@media print{' +
'.Break { page-break-after: always }' +
'}' +
'</style>';
PrintStyle += PrintThis.innerHTML;
myWin = window.open("");
myWin.document.write(PrintStyle);
myWin.print();
myWin.close();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<div id="print">
<h1 id="group">
</h1>
<table class="table bordered">
<thead>
<th>Name</th>
<th>Result</th>
</thead>
<tbody>

</tbody>
</table>
</div>

JSFIDDLE of current output

最佳答案

查看此示例 https://jsfiddle.net/qa9wcuft/ div 中有一个中断。它至少适用于 chrome 版本 64.0.3282.167 和 Firefox V 61.0.1。问题是这样的:https://jsfiddle.net/rz3896se/它适用于 firefox 但不适用于 chrome。看来 chrome 不会破坏表格。所以我的建议是做不同的表格,并在中间放一个 div,像这样 https://jsfiddle.net/8L201zvw/ .

您还添加了此内容:.Break { page-break-after: always }(.break 更好)这对于分隔页面是正确的,但您没有' 具有该类的任何元素。我的建议是你应该在页面中你想要的最后一个元素中添加 class="break" (都小写更好),在这种情况下,我认为是这样的:

 html = '<tr class="break">';
html += '<td><textarea placeholder="textarea..."></textarea></td>';
html += '</tr>';

这在 chrome 中不起作用。我的建议:

关于javascript - 在ajax成功的单独页面中打印每个循环记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52172053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com