如何让每一行数组在另一页上单独显示?

时间:2010-12-30 21:58:36

标签: php arrays

我无法弄清楚如何在另一页上显示我的表格的一行。我想要做的是使每一行都可打印。这是screen shot

这是用于显示表格的php(coupon_index.php):

<?php include template("header");?>

<div id="bdw" class="bdw">
<div id="bd" class="cf">
<div id="coupons">
<div class="dashboard" id="dashboard">
<ul><?php echo current_account('/coupon/index.php'); ?></ul>
</div>
<div id="content" class="coupons-box clear">
<div class="box clear">
<div class="box-top"></div>
<div class="box-content">
<div class="head">
<h2>My <?php echo $INI['system']['couponname']; ?></h2>
<ul class="filter">
<li class="label">Category: </li>
<?php echo current_coupon_sub('index'); ?>

</ul>
</div>
<div class="sect">
<?php if($selector=='index'&&!$coupons){?>
<div class="notice">There is no usable <?php echo $INI['system']['couponname']; ?></div>
<?php }?>
<table id="orders-list" cellspacing="0" cellpadding="0" border="0" class="coupons-table">
<tr><th width="300">Deal Item</th><th width="100" nowrap>Voucher's Number</th><th width="60" nowrap>Voucher's Password</th><th width="100" nowrap>Valid Till</th><th width="40">Email Voucher</th></tr>
<?php if(is_array($coupons)){foreach($coupons AS $index=>$one) { ?>
<tr <?php echo $index%2?'':'class="alt"'; ?>>
<td><a class="deal-title" href="/team.php?id=<?php echo $one['team_id']; ?>" target="_blank"><?php echo $teams[$one['team_id']]['title']; ?></a></td>
<td><?php echo $two['id']; ?></td>
<td><?php echo $two['secret']; ?></td>
<td><?php echo date('Y-m-d', $two['expire_time']); ?></td>
<td><a href="/coupon/print.php">Send</a></td>
</tr>
<?php }}?>
<tr><td colspan="5"><?php echo $pagestring; ?></td></tr>
</table>
</div>
</div>
<div class="box-bottom"></div>
</div>
</div>
<div id="sidebar">

</div>
</div>
</div> <!-- bd end -->
</div> <!-- bdw end -->

<?php include template("footer");?>

以及(index.php):

<?php
require_once(dirname(dirname(__FILE__)) . '/app.php');

need_login();
$daytime = strtotime(date('Y-m-d'));
$condition = array(
'user_id' => $login_user_id,
'consume' => 'N',
"expire_time >= {$daytime}",
);

$count = Table::Count('coupon', $condition);
list($pagesize, $offset, $pagestring) = pagestring($count, 10);
$coupons = DB::LimitQuery('coupon', array(
'condition' => $condition,
'coupon' => 'ORDER BY create_time DESC',
'size' => $pagesize,
'offset' => $offset,
));

$team_ids = Utility::GetColumn($coupons, 'team_id');
$teams = Table::Fetch('team', $team_ids);

include template('coupon_index');

这是html(coupon_index.html):

<!--{include header}-->

<div id="bdw" class="bdw">
<div id="bd" class="cf">
<div id="coupons">
    <div class="dashboard" id="dashboard">
        <ul>${current_account('/coupon/index.php')}</ul>
    </div>
    <div id="content" class="coupons-box clear">
        <div class="box clear">
            <div class="box-top"></div>
            <div class="box-content">
                <div class="head">
                    <h2>My {$INI['system']['couponname']}</h2>
                    <ul class="filter">
                        <li class="label">Category:  </li>
                        ${current_coupon_sub('index')}

                    </ul>
                </div>
                <div class="sect">
                    <!--{if $selector=='index'&&!$coupons}-->
                    <div class="notice">There is no usable {$INI['system']['couponname']}</div>
                    <!--{/if}-->
                    <table id="orders-list" cellspacing="0" cellpadding="0" border="0" class="coupons-table">
                    <tr><th width="300">Deal Item</th><th width="100" nowrap>Voucher's Number</th><th width="60" nowrap>Voucher's Password</th><th width="100" nowrap>Valid Till</th><th width="40">Print Voucher</th></tr>
                    <!--{loop $coupons $index $one}-->
                        <tr ${$index%2?'':'class="alt"'}>
                            <td><a class="deal-title" href="/team.php?id={$one['team_id']}" target="_blank">{$teams[$one['team_id']]['title']}</a></td>
                            <td>{$one['id']}</td>
                            <td>{$one['secret']}</td>
                            <td>${date('Y-m-d', $one['expire_time'])}</td>
                            <td></td>
                        </tr>   
                    <!--{/loop}-->
                        <tr><td colspan="5">{$pagestring}</td></tr>
                    </table>
                </div>
            </div>
            <div class="box-bottom"></div>
        </div>
    </div>
    <div id="sidebar">

    </div>
</div>
</div> <!-- bd end -->
</div> <!-- bdw end -->

<!--{include footer}-->

3 个答案:

答案 0 :(得分:0)

打印时每页输出一行的最简单的解决方案就是使用CSS属性之前的page-break-before或page-break-after。也就是说,根据您选择的路线,您需要在第一个或最后一个tr上压制这些。

例如:

<style>
@media print {
    table tr {page-break-after:always}
}
</style>

答案 1 :(得分:0)

您需要传递相关优惠券的数据库rowID或其中的一些变体。我会使用它的一些哈希值,也许是它的MD5,以及远端检查会话人是该优惠券的所有者并且优惠券是有效的......

所以您的打印链接将是:

<td><a href="/coupon/print.php{md5($one['id'])}">Send</a></td>

答案 2 :(得分:0)

在coupon_index.php中,我无法理解$ 2所指的是什么。 您可能需要更好地命名和缩进该段代码,为要显示的行找到合适的id,将此信息传递给将仅加载相关行的相应控制器。