0

PHP関数を使用して行の色を変更したいと考えています。これが私が持っているものです(それは機能しませんが):

function row($year) {
    if($year%2) 
        $color == "#FFF";
    else
        $color == "#000";
}

for ($year=2013; $year<=2023; $year++) 
    {
    row($year);
    echo "<tr bgcolor='$color'><td>$year</td><td>$tdate</td></tr>";
    }

基本的に、年がおかしい場合は、列の色を白にします。でも、黒。

4

8 に答える 8

11

nth-childセレクターでCSSを使ってみませんか?

tr:nth-child( 2n ) {
  background-color: #000;
}
tr:nth-child( 2n + 1 ) {
  background-color: #FFF;
}

<tr>その場合、要素にそれ以上の属性は必要ありません。

IEに加えて、ほとんどのブラウザはこれをサポートしています。MDNのブラウザ互換性を参照してください。

于 2013-02-01T16:42:20.843 に答える
3

W3cから

15.1.1背景色-bgcolor 属性は廃止され、背景色情報を指定するためのスタイルシートが採用されました。

今、あなたは何をすべきですか

function row($year) {
    return ($year % 2 == 0) ? "#FFFFFF" : "#000000";
}

for ($year = 2013; $year <= 2023; $year++) {
    echo "<tr style='background-color:".row($year).";'><td>$year</td><td>$tdate</td></tr>";
}
    
 

==ただし、代入演算子ではなく、等しい演算子が何であるかを認識していないようです。

代入演算子が行うことは、たとえば、右側の値を左側に割り当てることです。

ここに画像の説明を入力してください

比較演算子(==が行うことは

$a == $b    Equal   TRUE if $a is equal to $b after type juggling.

次に、変数のスコープもあります

変数のスコープは、変数が定義されているコンテキストです。ほとんどの場合、すべてのPHP変数には単一のスコープしかありません。この単一のスコープは、含まれているファイルと必要なファイルにも及びます。

上記はphpマニュアルから引用されています詳細を読むにはこれをチェックしてください

于 2013-02-01T16:43:00.697 に答える
1
function row($year) {
    $color = '';
    if($year%2) 
        $color = "#FFF";
    else
        $color = "#000";

   return $color;
}

for ($year=2013; $year<=2023; $year++) 
    {
    $color = row($year);
    echo "<tr bgcolor='$color'><td>$year</td><td>$tdate</td></tr>";
    }
于 2013-02-01T16:42:09.513 に答える
1
for ($year=2013; $year<=2023; $year++) 
{
    echo "<tr bgcolor='".$year%2==0?"#fff":"#000"."'><td>$year</td><td>$tdate</td></tr>";
}
于 2013-02-01T16:42:36.877 に答える
0

関数の結果をどこにも保存していません。これを試して:

function row($year) {
    if($year%2) 
        $color == "#FFF";
    else
        $color == "#000";
}

for ($year=2013; $year<=2023; $year++) 
{
    $color = row($year);
    echo "<tr bgcolor='$color'><td>$year</td><td>$tdate</td></tr>";
}

それは可変スコープについてです。

于 2013-02-01T16:42:55.867 に答える
0

関数から何も返さないので、このようにしてください

function row($year) {
    if($year%2) 
        $color == "#FFF";
    else
        $color == "#000";
return $color;
}

for ($year=2013; $year<=2023; $year++) 
    {
    $color = row($year);
    echo "<tr bgcolor='$color'><td>$year</td><td>$tdate</td></tr>";
    }
于 2013-02-01T16:43:23.937 に答える
0

他のプログラミング言語と同じように、ローカル変数とグローバル変数をいつ操作するかを知っておく必要があります。この場合、ある関数で別の関数に対してローカルな変数を使用しようとしています。

function row($year) {
    if($year%2 == 1) 
        return "#FFF";
    else
       return "#000";
}

for ($year=2013; $year<=2023; $year++) 
    {
    echo "<tr bgcolor='".row($year)."'><td>$year</td><td>$tdate</td></tr>";
    }
于 2013-02-01T16:44:06.697 に答える
0
<?php
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$dbname=""; // Database name
$tblname=""; // Table name
// Connect to server and select databse
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$dbname")or die("cannot select DB");
$sql="SELECT * FROM $tblname";
$result=mysql_query($sql);
// Define $color=1
$color="1";
echo '<h3 align = "center">Employee Details <hr /></h3>';
echo '<table width="400" border="1" align="center" cellpadding="2" cellspacing="0">';
while($rows=mysql_fetch_row($result)){
// If $color==1 table row color = #FFCCFF
if($color == 1){
echo "<tr bgcolor='#FFCCFF'><td>$rows[0]</td><td>$rows[1]</td><td>$rows[2]</td><td>$rows[3]</td></tr>";
// Set $color==2, for switching to other color
$color="2";
}
// When $color not equal 1, table row color = #FFC600
else {
echo "<tr bgcolor='#FFC600'><td>$rows[0]</td><td>$rows[1]</td><td>$rows[2]</td><td>$rows[3]</td></tr>";
// Set $color back to 1
$color="1";
}
}
echo '</table>';
mysql_close();
?>

上記のコーディングでは、最初にデータベースからデータを選択し、次に値1で変数$colorを定義します。whileループの後にif条件が追加されます。$color = 1の場合、テーブルの行の色は#FFCCFFになります。 if条件では、他の色に切り替えるために$ color == 2を設定します。ここで、$ colorが1に等しくない場合、テーブル行color =#FFC600で、else条件が実行されます。else条件では、$colorを1に戻します。 。

于 2016-04-05T10:35:12.830 に答える