Я бы хотел, чтобы Zebra Stripe отобразила таблицу результатов. Я не могу найти твердого решения. Что мне нужно сделать для этой таблицы, чтобы добавить нечетный / четный класс в строки результатов?
// HTML ... Aliases from Mysql echo "<table class='sortable' id='tablesorter' cellspacing='1' cellpadding='0' border='0' width='920px' > <thead> <tr> <th class='header'>Short Name of Fund</th> <th class='header'>I/C</th> <th class='header'>Fund Manager Company</th> <th class='header'>Class</th> <th class='header'>Special Class</th> <th class='header' id='custom'>TTR year-to-date<br /> %</th> <th class='header'>Mgmt Fee Effectively Charged</th> <th class='header id='custom'>Total Expenses <br /> %</th> <th class='header'>Fund Size</th> </thead><tbody> </tr>"; //<tr> specifies table row. for each <td> (table data) will specify a new column. The $row specifies the mysql column name (in this case using an alias) while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td><a href=\"page.php?id={$row['ID']}\">{$row['Short Name of Fund']}</a></td>"; echo "<td>" . $row['I/C'] . "</td>"; echo "<td>" . $row['Fund Manager Company'] . "</td>"; echo "<td>" . $row['Class'] . "</td>"; echo "<td>" . $row['Special Class'] . "</td>"; echo "<td>" . $row['TTR year-to-date %'] . "</td>"; echo "<td>" . $row['Mgmt Fee Effectively Charged'] . "</td>"; echo "<td>" . $row['Total Expenses %'] . "</td>"; echo "<td>" . $row['Fund Size'] . "</td>"; echo "</tr>"; } echo "</tbody></table>";
Это должно работать, синтаксис может быть неправильным, поскольку я его не тестировал. Но логика есть.
$currentState = 'odd'; $html = ''; while($row = mysql_fetch_array($result)){ $currentState = ($currentState == 'odd' ? 'even' : 'odd'); $html .= '<tr class="'.$currentState.'">'; $html .= '<td><a href="page.php?id=' . $row['ID'] . '">'. $row['Short Name of Fund'] .'</a></td>'; $html .= '<td>' . $row['I/C'] . '</td>'; $html .= '<td>' . $row['Fund Manager Company'] . '</td>'; $html .= '<td>' . $row['Class'] . '</td>'; $html .= '<td>' . $row['Special Class'] . '</td>'; $html .= '<td>' . $row['TTR year-to-date %'] . '</td>'; $html .= '<td>' . $row['Mgmt Fee Effectively Charged'] . '</td>'; $html .= '<td>' . $row['Total Expenses %'] . '</td>'; $html .= '<td>' . $row['Fund Size'] . '</td>'; $html .= '</tr>'; } echo $html;
EDIT : Обновлен код, чтобы он работал.
Если вы хотите использовать CSS 3, попробуйте n-й детский трюк в вашем css:
tr:nth-child(2n+1) { background-color: #aaeeaa; }
Однако, если вы хотите продолжить работу с нечетными / четными классами, вам понадобится счетчик во время цикла while, а затем чередуйте нечетные / четные классы, когда count % 2 = 0
трюк заключается в том, чтобы использовать php логическим способом: D Хитрость заключается в создании динамического класса для ваших строк таблицы. Поэтому в основном у вас будет 2 класса для странных и один для eaven. Я приведу вам пример ниже (не возражайте против моего проекта):
$counter=""; while ($upit_row = mysql_fetch_array($upit_run)){ $korisnik_id = $upit_row['korisnik_id']; $tip_id = $upit_row['tip_id']; $tip = mysql_fetch_array(mysql_query("SELECT naziv FROM tip_korisnika WHERE tip_id = '$tip_id'")); $kor_ime = $upit_row['korisnicko_ime']; $ime = $upit_row['ime']; $prezime = $upit_row['prezime']; $email = $upit_row['email']; $counter++; $class=""; if ($counter%2){ $class="even"; } else{ $class="odd"; }
CSS выглядит так:
tr.odd{ background-color:white; } tr.even{ background-color:#FAFAFA; }
Счетчик будет подсчитывать каждую строку, генерирующую php, которая создает число, которое вы нырнули на 2, и получите нечетные и четные числа. После этого вы используете параметр if, чтобы определить свой класс: D После этого просто вставьте переменную класса в следующую строку:
echo "<tr class='$class'>";
или вот так:
<tr class="<?php echo $class ?>">
PS. извините за мой английский: / Надеюсь, это помогло.