2012-09-28 118 views
1

所以我有一個從while循環數據庫生成的表。數據以行顯示。要點是有「隱藏」的行,只有點擊時纔有數據可用(如顯示詳細信息)。基本上我想要這樣的:http://www.transfercar.co.nz/ - 如果你點擊表格行,更多的數據出現在下面(在新行中)。如何在while循環中顯示/隱藏jQuery的表格行

我的代碼如下所示:

while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { 
$display1=$display1+1; 
    echo ' 
    <tr class="tablerow"> 
     <td>' . $row['id'] . '</td> 
     <td><p class="state">' . $row['name'] . '</p></td> 
     <td><p class="state">' . $row['surname'] . '</p></td> 
     <td>' . $row['country'] . '</td> 
     <td>' . $row['city'] . '</td> 
     <td>' . $row['category'] . '</td> 
    </tr>'; 
if($row['id']==$_GET['showrow']) 
{ 
    echo ' 
    <tr class="subtable" style="display:none;">'; 
     echo '<td colspan="3" class="detalji"></td> 
     <td align="left" colspan="3" class="detalji"></td> 
     </tr>';}} // End of WHILE loop. 
echo '</table>'; 

我的jQuery看起來是這樣的:

/* Table row click */ 
$(".tablerow").click(function() 
{ 
    $(".subtable").show(); 
}); 

$(".subtable").click(function() 
{ 
    $(".subtable").hide(); 
}); 

一點是,一旦點擊所有的子表顯示,自然我只想要點擊的表格行下面的一個..

回答

0

我已成功地解決使用這樣的代碼是:

$(".tablerow").click(function() 
{ 
    $(this).next(".subtable").slideDown("slow"); 
}); 

$(".subtable").click(function() 
{ 
    $(".subtable").hide(); 
}); 

舒尚特·雷迪非常有幫助,謝謝!我不確定爲什麼這個代碼有效,而Sushanth不是。在某處可能有拼寫錯誤,但無論如何,Susanth提供了正確的答案,因此我將用正確的代碼編輯他的答覆。

1

試試這個

$(".tablerow").click(function() { 
    // Hideing all the tr with class subtable rows initially 
    $('.subtable').hide(); 
    // Find the next tr which has class subclass in current context 
    $(this).next('.subtable').show(); 
}); 

$(".subtable").click(function() { 
    // Hide current row that has class subtable 
    $(this).hide(); 
});​ 
+0

thx但它不工作。點擊沒有做任何事情像jquery代碼是錯誤的,雖然看起來相當不錯,我... – Oktarin

+0

幫助真的很感激,謝謝 – Oktarin

+0

@Oktarin ..不客氣:) –