我会直接进入它。我需要使用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”的唯一剩余部分。任何帮助是极大的赞赏。
答案 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。