1

MYSQL データベースから行を取得するテーブルがあります

<table id="table1">
<?php
// Connect to database server
    mysql_connect("localhost", "root", "asnaeb") or die (mysql_error ());
// Select database
        mysql_query("SET NAMES `utf8`"); // UTF 8 support!!
    mysql_select_db("scores") or die(mysql_error());
// SQL query
    $strSQL = "SELECT * FROM latest";
// Execute the query (the recordset $rs contains the result)
    $rs = mysql_query($strSQL);
// Loop the recordset $rs
// Each row will be made into an array ($row) using mysql_fetch_array
    while($row = mysql_fetch_array($rs)) { 
// Write the value of the column FirstName (which is now in the array $row) 
?>

<?php echo $row['Header'].""; ?>
<tr>
<td id='date'><?php echo $row['Date'].""; ?></td>
<td id='time'><?php echo $row['Time'].""; ?></td>
<td id='hometeam'><?php echo $row['HomeTeam'].""; ?></td>
<td id='score'><?php echo $row['Score'].""; ?></td>
<td id='awayteam'><?php echo $row['AwayTeam'].""; ?></td>
<td id='other'><?php echo $row['Other'].""; ?></td>
</tr>

<?php } mysql_close(); ?>
</table>

私は奇数行と偶数行のために「A」と「B」と呼ばれる2つのcssクラスを持っています

私は現在これを置き換えること<tr>で これを行っ<tr class='<?php echo $row['Row'].""; ?>'> ており、データベーステーブルに列「行」があり、偶数行または奇数行の A または B に追加します...問題は、いずれかの間に新しい行を削除または追加する場合ですこれらは、他のすべてのAとBを変更する必要があります。

別の質問で、javascriptまたはjqueryでそれを行う多くの方法を見てきましたが、私の場合ではないTRを含む通常のテーブルの場合...(これらのスクリプトのいくつかを試しましたが、修正できませんでした)

それで、偶数行と奇数行を行う簡単な方法が欲しいです、ありがとう!

4

5 に答える 5

11

CSS の方法 (インライン クラスなし) で一度だけ実行します。

CSSで

#table1 tr:nth-child(odd) td { background-color:#ebebeb }
#table1 tr:nth-child(even) td { background-color:#0000ff }

あなたのHTMLで

<table id="table1">

テーブルの行が削除されているかどうかに関係なく、それだけです。

于 2012-06-01T14:12:30.240 に答える
6

このようにjQueryを使用してこれらのクラスを簡単に追加できます

$(function(){
  $('#table1 tr:odd').addClass('A');

 // for even

 $('#table1 tr:even').addClass('B');

});
于 2012-06-01T14:10:58.510 に答える
1

whileループでモジュロを使用しなかったのはなぜですか? クラスをデータベースに保存するよりも良い方法です... :

    $i = 0;        
    while($row = mysql_fetch_array($rs)) { 
    // Write the value of the column FirstName (which is now in the array $row) 
    ?>

    <?php echo $row['Header'].""; ?>
    <tr class="<?php echo $i%2 == 0 ? "class_A" : "class_B" ; $i++;?>" >
    <td id='date'><?php echo $row['Date'].""; ?></td>
    <td id='time'><?php echo $row['Time'].""; ?></td>
    <td id='hometeam'><?php echo $row['HomeTeam'].""; ?></td>
    <td id='score'><?php echo $row['Score'].""; ?></td>
    <td id='awayteam'><?php echo $row['AwayTeam'].""; ?></td>
    <td id='other'><?php echo $row['Other'].""; ?></td>
    </tr>

    <?php } mysql_close(); ?>
于 2012-06-01T14:14:35.927 に答える
1
<?php
$class="odd"
while($row = mysql_fetch_array($rs)) { 
  $class = ($class=='even' ? 'odd' : 'even');
?>
<tr class="<?php echo $class">
...
</tr>
<?php } ?>
于 2012-06-01T14:15:27.177 に答える
0

これを行うには、PHP、Javascript、さらには純粋な CSS など、さまざまな方法があります。クラスを 1 行おきに追加する PHP の方法は次のとおりです。

while($row = mysql_fetch_blahblah()) {

$i = 0; ?>
    <tr class="<?php echo $i % 2 == 0 ? 'class1' : 'class2';?>">
        <td>....</td>
    </tr>
<?php
$i++; // increment our counter 
}

基本的に、モジュラス演算子は、その両側の nummer を除算した余りを返します。たとえば3 % 2 == 14 % 2 == 0,です。したがって、 が奇数か偶数か5 % 2 == 1を判断$iし、 に追加されたクラスを交互に使用できます<tr>

私見では、この方法で 100% 動作することを保証する (ブラウザーの依存関係がない) か、最新のブラウザー用にアプリを設計する場合は CSS ルートを使用することをお勧めします。

于 2012-06-01T14:14:58.690 に答える