我正在尝试构建一个简单的“博客”,我自己或主持人可以通过调用delete函数将其删除。但是,我只希望为管理员显示删除按钮。我创建了一个函数来验证用户,效果很好。但是,我对Javascript不够熟悉,无法知道是使用window.onload还是onopen或onchange,或者如何将函数附加到我的Foreach循环中以针对我拥有的每篇博文运行。当我有10篇博客文章时,只会显示第一篇(或最后一篇)文章。
我尝试将“ onload / onopen / onchange”命令添加到主体,foreach循环以及标签中,以查看其响应是否不同。
<script>
function ShowDelete()
{
var x = document.getElementById("Delete");
if (userid === "1") {
x.style.display="block";
}
else {
x.style.display="none";
}
}
window.onload = ShowDelete;
</script>
<?php foreach ($entries as $entry) : ?>
<?php if ($userid == 1) { ?>
<input type="submit" id="btnDelete" value="Delete Post" />
<?php } ?>
<?php endforeach; ?>
好,非常感谢您的回答,我只需在循环内输入决策语句即可确定是显示还是跳过。多谢!!
答案 0 :(得分:1)
您正在创建HTML输入,然后将其隐藏。最佳做法是不要首先根据您的用户ID创建元素。
<?php foreach ($entries as $entry) : ?>
/* Check for userid here and create delete element if condition is met */
<?php endforeach; ?>
答案 1 :(得分:0)
无需多次调用函数来设置样式。在您的<input/>
事件中,按类名称捕获所有display
元素,并设置您的id
样式。请注意,class
属性必须唯一,因此应使用id
属性代替const userid = "0";
window.addEventListener('DOMContentLoaded', () => {
let inputs = document.getElementsByClassName("Delete");
Array.from(inputs).forEach(input => {
input.style.display = userid === "1" ? "block" : "none";
});
});
。
<input type="submit" class="Delete" value="Delete Post" />
<input type="submit" class="Delete" value="Delete Post" />
<input type="submit" class="Delete" value="Delete Post" />
load
看看有关var indexPaths = [IndexPath(row: 0, section: 1),
IndexPath(row: 1, section: 1),
IndexPath(row: 2, section: 1),
IndexPath(row: 2, section: 0)
]
extension Array where Element == IndexPath {
func splitArray() -> Array<[IndexPath]> {
var tempDict = [String : [IndexPath]]()
for element in self {
let section = element.section
if tempDict[String(section)] != nil {
// some element append
if var array = tempDict[String(section)] {
array.append(element)
tempDict[String(section)] = array
}
} else {
tempDict[String(section)] = [element]
}
}
// dictionary mayn't have sorted, sort the dictionary
tempDict.sorted{ $0.key > $1.key }
var returnedArray = Array<[IndexPath]>()
for (key, value) in tempDict {
returnedArray.append(value)
}
return returnedArray
}
}
print(indexPaths.splitArray())
听众的this post也可能是有益的。