根据用户ID隐藏div?
问题描述:
我会马上进入它。我需要使用PHP和Javascript隐藏页面上的一些内容。根据用户ID隐藏div?
我正在使用Joomla。下面是表:
<table class="orders">
<tr>
<th>Name</th>
<div class="testclass"><th>Expiry Date</th>
<th>Batch ID</th></div>
<th>Local ICOS</th>
</tr>
<tr>
<td>...</td>
<div class="testclass"><td>...</td>
<td>...</td></div>
<td>...</td>
</tr>
</table>
现在,让我们说,我想隐藏的用户ID为50。这是我为写代码的用户“到期日”和“批次ID”:
<?php
$user = Jfactory::getUser();
$userID = $user->get(id);
if ($userID == "50") {
echo "<script type='text/javascript>'
$(document).ready(function(){
$('.testclass').show();
})
</script>";
}
else {
echo "<script type='text/'javascript>'
$(document).ready(function(){
$('.testclass').hide();
})
</script>";
}
?>
现在,我的页面没有加载,所以没有错误。但是,它仍然没有物理隐藏类为“testclass”的div。
它只是正常显示它们。我知道一个更好的方法是使用组,我将为我们网站上的选定用户分配所需的组。
因此,我认为调用这些组可能会更容易,而不是为所有的用户ID做。
这是完成我正在使用的组件的此自定义“default.php”的唯一剩余部分。任何帮助是极大的赞赏。
答
FOA - 您的代码有混杂 - 当用户ID是50时,代码显示(.show()
)类元素,而不是隐藏它们。
第二 - 不要使用Javascript隐藏任何可以访问开发工具的人(所以任何人)都可以更改CSS并查看代码。
更好的方法是根本不渲染代码。它会去某事像这样:
<table class="orders">
<tr>
<th>Name</th>
<?php if ($user->id!="50") { ?>
<th>Expiry Date</th>
<th>Batch ID</th>
</div>
<?php } ?>
<th>Local ICOS</th>
</tr>
</table>
可以使用JS时,它并不重要,只是为了方便用户不会看到他们隐藏的东西。不要用重要的东西来做。
另外,你的JS代码在两个部分都不正确。它应该像这样开始:
echo "<script type='text/javascript'> ... "
注意quatation标记。
你想隐藏它,但在你的代码ID - 50显示类,而不是隐藏它。 –
为什么不使用PHP来做这件事?意思是用PHP来做if语句...... –
这并不是一个好的做法。不要只使用JS来改变CSS风格。任何有共同知识的人都可以更改CSS代码。如果你想真的隐藏它,那么不要加载html代码,如果userID是你不想看到的东西! –