根据用户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”的唯一剩余部分。任何帮助是极大的赞赏。

+1

你想隐藏它,但在你的代码ID - 50显示类,而不是隐藏它。 –

+0

为什么不使用PHP来做这件事?意思是用PHP来做if语句...... –

+0

这并不是一个好的做法。不要只使用JS来改变CSS风格。任何有共同知识的人都可以更改CSS代码。如果你想真的隐藏它,那么不要加载html代码,如果userID是你不想看到的东西! –

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标记。

+0

谢谢你的提示和建议。我明白你是什么意思,我真的显示了如果用户ID是50的div。我会试一试你的版本!我实际上试图以你的方式使用它,至少是加载。 – MailBlade

+1

你应该明确地使用serverside工具,而不是客户端。如果(例如)你显示了一些页面,并用javascript隐藏非管理员的信息,这将是一个非常大的禁忌,因为任何具有常识的人都可以访问该信息。 :) –

+0

是的,如果他们得到一个脚本等举行,它可能会严重结束。谢谢Mikelis!我现在在家,明天上班,我会测试你的版本。再次感谢 – MailBlade