我是PHP和jquery的新手
有两个表
maincategory
tagId tagName
4 Gadgets
5 History
3 Mathematics
1 Science
2 Social
subcategoryone
subOneTagId tagid subOneTagName
1 1 Inventions
2 2 Discoveries
3 1 Timeline
子类别表中的 tagid
与maincategory中的tagId
相同。
这是我的PHP代码提取主要的catergory
<?php
$res=mysqli_query($con,"select * from maincategory order by tagName") or die("error");
while($row=mysqli_fetch_array($res))
{
echo "<input type='checkbox' value='".$row['tagId']."' name='tags[]' id='tag".$row['tagId']."'>
<label for='tag".$row['tagId']."'>".$row['tagName']."</label><br>";
}?>
这是基于在主类别中选中的tagId获取子类别表的同一个php页面中的另一个代码
`
<?php
$res=mysqli_query($con,
"select * from subcategoryone order by subOneTagName where tagid='tag".$row['tagId'])
or die("error");
while($row=mysqli_fetch_array($res)) {
echo "<input type='checkbox' value='".$row['subOneTagId']."' name='subtags[]'
id='subtag".$row['subOnetagId']."'>
<label for='subtag".$row['subOneTagId']."'>".$row['subOneTagName']."</label><br>";
}
?>
问题是子类别表最初是隐藏的。子类别表是您在上面的PHP代码中看到的一组复选框。子类别表(最初隐藏)应根据maincategory中的checked复选框显示值。所以这应该在不刷新页面的情况下发生。因为maincategory和subcategory查询都在同一页面中。
更准确地说,当我在maincategory中检查Science时,只显示表子类别中的Inventions和Timeline(参见上表)。
答案 0 :(得分:1)
感谢您为我付出的努力。
在这里我找到了答案。我的JS就在这里。
<script type="text/javascript">
function showSubCategories(element)
{
}
$(document).ready(function(){
$('.mainCategory label,.mainCategory input').click(function(){
var parentDiv = $(this).parents('div:first');
var tagId = parentDiv.attr('tag-id');
if(parentDiv.children('input:first').prop('checked') == true)
$('.subCategoryOne div.tag-id-'+tagId).css('display','block');
else
$('.subCategoryOne div.tag-id-'+tagId).css('display','none');
});
});
</script>
然后我重写了子类别表。
<td>
<?php $res=mysqli_query($con,"select * from subcategoryone order by subOneTagName") or die("error");
while($row=mysqli_fetch_array($res))
{
echo "<div class='tag-id-".$row['tagId']."'><input class='main-tag-".$row['tagId']."' type='checkbox'
value='".$row['subOneTagId']."'
name='subtags[]'
id='subtag".$row['subOneTagId']."'>
<label class='main-tag-".$row['tagId']."' for='subtag".$row['subOneTagId']."'>
".$row['subOneTagName']."</label></div>";
}?>
</td>
答案 1 :(得分:0)
如果您想要它而不刷新页面,您应该查看AJAX(使用Jquery)http://api.jquery.com/jQuery.ajax/