根据用户ID隐藏div?

时间:2017-09-23 19:34:31

标签: javascript php joomla

我会直接进入它。我需要使用PHP和Javascript在页面上隐藏一些内容。

我正在使用Joomla。这是表格:

class GraphicsScene(QGraphicsScene):
    def __init__(self, parent=None):
        QGraphicsScene.__init__(self, parent)
        self.setSceneRect(-100, -100, 200, 200)
        self.opt = ""

    def setOption(self, opt):
        self.opt = opt

    def mousePressEvent(self, event):
        pen = QPen(QtCore.Qt.black)
        brush = QBrush(QtCore.Qt.black)
        x = event.scenePos().x()
        y = event.scenePos().y()
        if self.opt == "Generate":
            self.addEllipse(x, y, 4, 4, pen, brush)
        elif self.opt == "Select":
            print(x, y)


class SimpleWindow(QtWidgets.QMainWindow, points.Ui_Dialog):
    def __init__(self, parent=None):
        super(SimpleWindow, self).__init__(parent)
        self.setupUi(self)

        self.scene = GraphicsScene(self)
        self.graphicsView.setScene(self.scene)
        self.graphicsView.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)

        group = QButtonGroup(self)
        group.addButton(self.radioButton)
        group.addButton(self.radioButton_2)

        group.buttonClicked.connect(lambda btn: self.scene.setOption(btn.text()))
        self.radioButton.setChecked(True)
        self.scene.setOption(self.radioButton.text())

现在,假设我想为用户ID为50的用户隐藏“到期日期”和“批次ID”。这是我为此编写的代码:

<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>

现在,我的页面确实已加载,因此没有错误。但是,它仍然没有物理隐藏div类的“testclass”。

它只是正常显示它们。我知道更好的方法是使用组,我将在我们的站点上为所选用户分配所需的组。

所以我认为调用组可能更容易,而不是为所有用户ID执行此操作。

这是完成我正在使用的组件的自定义“default.php”的唯一剩余部分。任何帮助是极大的赞赏。

1 个答案:

答案 0 :(得分:4)

FOA - 您的代码混合了 - 当userID为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 marks。