2013-11-26 44 views
0

我想列出从mysql表中的文件到php中的网页。为此我使用表格,以便我有更多的定期视图。现在在一个页面上有n个表格。这n取决于mysql查询。我可以列出页面上的文件。但是,如果表中的行数增加并且n的值也增加,那么我的页面长度将会很长。所以我想给每个表提供一个树形视图。就像每个表格上都有一个按钮,其值为'+'。当我点击它时,值变为' - ',该表应该是可见的。 这里是我的尝试如何在php中点击按钮显示表格?

<script type="text/javascript"> 
$(document).ready(function(){ 
    $(".show").html("<input type='checkbox'>"); 
    $('.tree td').hide(); 
    $('th ').click(function() { 
    $(this).parents('table').find('td').toggle(); 
    }); 
}); 

<table width="100%" class="tree"> 
<tr width="20px"><th colspan="2" class="show"> </th></tr>       
<tr> 
    <td width="50%"><b>Name</b></td> 
    <td width="50%"><b>Last Updated</b></td> 
</tr> 

    while($row = $result_sql->fetch_assoc()) 
    { 
     <tr> 
     <td width='50%'><a href='http://127.0.0.1/wordpress/?page_id=464&name_file={$row['name']}&cat={$cat}&sec={$sec}' target='_blank'>{$row['title']}</a></td> 
     <td width='50%'>{$row['created']}</td>        
     </tr> 
    } 
    </table> 

这是不准确的代码。

正如你所看到的我能够做到这一点,但我使用的是一个chackbox。我想要一个带有值+或 - 的按钮。这个代码有一个问题。在复选框显示的行中,如果我点击它,表格被展开意味着它不仅仅是复选框。那么有人可以帮助我呢?

感谢

+0

如果你有多个表增加你的页面长度,那么你可以使用“手风琴”..可能是这样的http://jsfiddle.net/crustyashish/Lbutf/ – Ashish

+0

谢谢ashish,但这不是我的要求 –

回答

1

我知道,这是一个代码示例,在未来尝试提供的jsfiddle,使其更容易为人们提供帮助。如果你想使用+/-,你可以做一个小的修改像my example

<th colspan="2" width="100%"><span class="show"></span></th> 

我基本上都添加了显示<th>类的跨度,并附着在其上的点击处理为好。当你点击它,它就会切换<td><table>内。另外,它会在<th>检查的文本价值和逆它

$('.show').click(function() { 
    $(this).parents('table').find('td').toggle(); 
    $(this).text() == '+' ? $(this).text('-') : $(this).text('+'); 
}); 

既然你不需要复选框并且您使用的是<span>,它将不会包裹整个<th>。这是你在找什么?

+0

谢谢对于你的回答 –

+0

,即使我自己找到答案CS的努力值得检查解决方案。而解决方案正是我想要的。只有在此期间,我也能够解决它。但我接受并投票答复 –

0

获取解决方案

<script type="text/javascript"> 
$(document).ready(function(){ 
$(".show").html("<input type='button' value='+' class='treebtn'>"); 
$('.tree td').hide(); 
$('.treebtn ').click(function() { 
$(this).parents('table').find('th').parents('table').find('td').toggle(); 
if (this.value=="+") this.value = "-"; 
else this.value = "+"; 

}); 
}); 

它工作正常我想要的方式。

相关问题