0

PHPで動的行にcssクラスを適用しようとしています。しかし、それは起こっていません。これが私のコードです。誰かが私が間違っている場所を教えてください。行のカウンターを宣言しましたが、そのカウントをインクリメントする場所がわかりません。

 <table width='100%' border='0' cellspacing='0' cellpadding='2'>
          <tr>
            <td class='tddash'>10 latest unpaid customer invoices</td>
          </tr>
          <tr>
            <td valign='top'>";

            $SQL = "SELECT salesorders.orderno,
                        debtorsmaster.name,
                        custbranch.brname,
                        salesorders.customerref,
                        salesorders.orddate,
                        salesorders.deliverydate,
                        salesorders.deliverto,
                        salesorders.printedpackingslip,
                        salesorders.poplaced,
                        SUM(salesorderdetails.unitprice*salesorderdetails.quantity*(1-salesorderdetails.discountpercent)/currencies.rate) AS ordervalue
                    FROM salesorders INNER JOIN salesorderdetails
                        ON salesorders.orderno = salesorderdetails.orderno
                        INNER JOIN debtorsmaster
                        ON salesorders.debtorno = debtorsmaster.debtorno
                        INNER JOIN custbranch
                        ON debtorsmaster.debtorno = custbranch.debtorno
                        AND salesorders.branchcode = custbranch.branchcode
                        INNER JOIN currencies
                        ON debtorsmaster.currcode = currencies.currabrev
                    WHERE salesorderdetails.completed=0
                    GROUP BY salesorders.orderno,
                        debtorsmaster.name,
                        custbranch.brname,
                        salesorders.customerref,
                        salesorders.orddate,
                        salesorders.deliverydate,
                        salesorders.deliverto,
                        salesorders.printedpackingslip,
                        salesorders.poplaced
                    ORDER BY salesorders.orderno";
                    $SalesOrdersResult1 = DB_query($SQL,$db);


                    echo "<table width='100%' celpadding='2' class='selection'><tbody>";
                            $TableHeader = "<tr><th> Customer </th><th>Order Date</th><th>Delivery Date</th><th>Delivery To</th><th>Order Total</th></tr> ";

                            $k = 0;





                    while ($row = DB_fetch_array($SalesOrdersResult1))

                        {

if ($k == 1){
                echo '<tr class="EvenTableRows">';
                $k = 0;
            } else {
                echo '<tr class="OddTableRows">';
                $k = 1;
            }
                            $FormatedOrderValue1 = locale_number_format($row['ordervalue'],$row['currdecimalplaces']);
                            //$TotalOrderValue = $array_sum($FormatedOrderValue1);
                            //$FormatedOrderValue1 = locale_number_format($myrow['ordervalue'],$_SESSION['CompanyRecord']['decimalplaces']);
                            $FormatedOrderDate = ConvertSQLDate($row['orddate']);
                            $FormatedDelDate = ConvertSQLDate($row['deliverydate']);

                            echo " <td> " . $row['name'] . " </td>";
                            echo " <td>$FormatedOrderDate</td><td>$FormatedDelDate</td><td> " . $row['deliverto'] . " </td><td>$FormatedOrderValue1</td> ";

            }
                        //echo "<tr><td colspan='3'>Total</td><td colspan='2'>$TotalOrderValue</td></tr></tbody>";
                        //echo $array_sum($FormatedOrderValue1);
            echo "</table>";

            echo"</td>
          </tr>
        </table>
4

3 に答える 3

1

これを while ループの中に入れてみてください。

if ($k == 1){
            echo '<tr class="EvenTableRows">';
            $k = 0;
        } else {
            echo '<tr class="OddTableRows">';
            $k = 1;
        }
于 2013-04-04T06:10:38.500 に答える
1

テーブルを装飾したい場合は、css を使用できます。サーバー側の言語を使用しない

tr:nth-child(even) {background: #CCC}
tr:nth-child(odd) {background: #FFF}
于 2013-04-04T06:17:20.243 に答える
0

コードに 3 つの問題があります (大量の HTML があり、PHP 内でエコーされるのではなく移動する必要があるという事実を数えると、4 つ)

1) $k++ がありません。$k 値をインクリメントする

2) 削除する必要がある $row['name'] 行内に "tr" があります。

3) if($k) ブロック全体を while() ループの内側に移動する必要があります。

于 2013-04-04T06:19:10.227 に答える