1

status = Oテーブル列が黄色のすべてのテーブル行に色を付けようとしています。また、表の列status = Pgreenになっているすべての表の行。

現在の IF ステートメントを編集して目的の出力を得ることができません。現在、私のコードは次のようになっています。

if ($difflogtime <= $calctimespan || ($rid == 0 && ($status == 'O' ||  $status      == 'P'))){
    echo"<tr valign='top' BGCOLOR='green'>";
    if ($editmode == 1)
        echo "<td valign='top'><Center><font face='Arial' size=2><img src='closedlock.gif' alt='Closed for editing' width='30%'></td>";
    else
        // echo "<td><center><img src='openlock.gif' alt='Open for    editing' border='0' width='30%'></td>";
        echo "<td><center><font  face='Arial' size =   2>$trimref</font></td>";
        echo "<td><Center><font  face='Arial' size =   2>".$dateshow1."</td>";
        echo "<td><Center><font face='Arial' size = 2>".$logtime."</td>";

これにより、すべての行が緑色で表示されます。誰かがこのコードを変更して目的の出力を得るのを手伝ってもらえますか? それは大歓迎です。ありがとうございました

注意: これは、Microsoft Access データベースを使用し、いくつかの単純な SQL クエリを実行する php ファイルです。

4

4 に答える 4

1

これを試して

  $color = ($status=="O")? "YELLOW" : "GREEN"; 
  echo"<tr valign='top' BGCOLOR=\"$color\">";
于 2013-05-24T16:50:29.550 に答える
0

これを試すことができます....

if ($difflogtime <= $calctimespan || ($rid == 0 && ($status == 'O' ||  $status == 'P'))){
    $color="";
    if ($status=="O"){$color="YELLOW";} else {$color="GREEN";}
    echo "<tr valign='top' BGCOLOR='" . $color . "'>";

    ....
    ....
于 2013-05-24T18:56:34.430 に答える
0

コードには、ステータスを確認してから色を決定するものはありません。これを追加します。

$bgColor = "yellow";
if ($status == 'O'){
    $bgColor = "green";
}

次に $bgColor パラメータを使用します。

echo '<tr valign="top" BGCOLOR="' . $bgColor . '">";

とにかく、いくつかの CSS を使用するようにしてください。コードのスタイルは非推奨です。これははるかに良いでしょう:

CSS コード:

.yellowStyle{
    vertical-align: top;
    background-color: yellow;
 }

 .greenStyle{
    vertical-align: top;
    background-color: green;
  }

PHP/HTML:

if ($difflogtime <= $calctimespan || ($rid == 0 && ($status == 'O' || $status == 'P')){
    $styleType = "yellowStyle";
    if ($status == 'O'){
        $styleType = "greenStyle";
    }
    echo"<tr class="' . $styleType . '">";
    ....
    ....
 }

あなたが尋ねたように、これはあなたのコードと私のソリューションを組み合わせたものです:

if ($difflogtime <= $calctimespan || ($rid == 0 && ($status == 'O' || $status == 'P')){
    $bgColor = "yellow";
    if ($status == 'O'){
        $bgColor = "green";
    }
    echo '<tr valign="top" BGCOLOR="' . $bgColor . '">';
    if ($editmode == 1){
        echo "<td valign='top'><Center><font face='Arial' size=2><img src='closedlock.gif' alt='Closed for editing' width='30%'></td>";
    }
    else{
        // echo "<td><center><img src='openlock.gif' alt='Open for    editing' border='0' width='30%'></td>";
    }
    echo "<td><center><font  face='Arial' size =   2>" . $trimref . "</font></td>";
    echo "<td><Center><font  face='Arial' size =   2>" . $dateshow1 . "</td>";
    echo "<td><Center><font face='Arial' size = 2>" . $logtime . "</td>";
}

elseコードでは「コンテンツ」が明確ではないことに注意してください。あなたが書いたように、最初のエコーのみが含まれます。そのため、インデントをそのように使用しました。

于 2013-05-24T16:50:33.437 に答える