2011-11-18 4 views
3

내 웹 사이트의 특정 게시에 대한 데이터를 표시하는 PHP 루프가 있습니다. 내가하고 싶은 일은 동적으로 짝수/홀수 CSS 클래스에 반환되는 행 수를 할당하는 것입니다. 예를 들어,PHP while 루프, 짝수/홀수 행 반환

first row returned - odd class 
second row returned - even class 
third row - odd class 

이 날 시각적으로 별도의 데이터를 유지하기 위해 다른 배경 색상을 할당 할 수 있습니다.

분명히해야합니다 -이 데이터는 테이블에 반환되지 않습니다.

while ($row = mysql_fetch_assoc($result)) { 

    echo " 
    <div class=\"songContainer\" id=\"" . $row['trackid'] . "\"> 
+0

무엇이 당신 질문입니까? 지금까지 뭐 해봤 어? 몇 가지 코드를 게시하십시오. 중복 된 질문 인 것처럼 사이트의 검색 기능을 사용하십시오. – hakre

+0

datatables.com - Google 'jquery table display plugin'과 같은 프론트 엔드 jquery 코드를 갖는 것이 더 빠릅니다. –

+1

[php : 홀수/짝수 루프를 배열에 추가하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/1403213/php-how-to-add-odd-even-loop-in-array) – hakre

답변

12

당신이 목표로해야하는 브라우저에 따라, 당신은 단지 CSS로 그렇게 할 수

$i = 0; 
foreach ($arr as $val) { 
    if (0 == $i % 2) { 
     // even 
    } 
    else { 
     // odd 
    } 
    $i++; 
} 
2

nth-child 클래스는 이와 같이 CSS3에서 지원됩니다.

table tr:nth-child(even) td{ 

} 

table tr:nth-child(odd) td{ 

} 

하지만 이전 버전도 지원하려면 PHP로 클래스 이름을 생성 할 수밖에 없습니다. http://www.quirksmode.org/css/nthchild.html

당신이 정말로 필요한 경우 :

.mytable tr:nth-child(even) { background-color: #FFF; } 
.mytable tr:nth-child(odd) { background-color: #EEE; } 

당신도이 의사 클래스와 더 복잡한 일을 수행 할 수 있습니다

0

사용이 jQuery를 :

PHP는 모듈을 사용하여

매초마다 tr 요소를 선택하고 짝수 클래스를 추가합니다. 그런 다음 이전 tr 요소를 선택하고 홀수 클래스를 추가합니다.

Example.

0
$num_rows = 0; 
$current_class = ""; 
while ($row = mysql_fetch_array($result)){ 
    $current_class = "class_odd"; 
    if($num_rows % 2 == 0){ 
     $current_class = "class_even"; 
    } 

    $num_rows++; 
}