我正在使用HTML,CSS,Javascript,Jquery,PHP等技术制作活动网站。我使用PHP中的RESTful服务检索数据。
有一个单独的活动页面,既可以由实际目标受众查看,也可以由可以在此页面上编辑活动详情的组织者查看。当组织者打开页面时,他应该看到编辑事件细节的选项。但是其他用户不应该看到这些选项。除了这些选项之外,组织者和其他用户的页面视图也是相同的。
我的问题是我应该使用Javascript / Jquery隐藏这些选项吗?或者我应该为此活动页面的每个版本分别设置页面,并根据用户是否是组织者来指导用户?哪个更好,为什么?
答案 0 :(得分:0)
在php中,您将知道当前用户是否是组织者。只需在响应中发回一个变量,例如 is_organizer:1 ,然后您就可以根据用户确定要显示的内容。
如果html输出与用户没有太大区别,那么这种方法比使用完全不同的视图更好,因为您保持代码DRY并且没有相同标记的副本。
我假设您已经检查过用户是组织者,然后才能保存对事件的更改。如果没有,你肯定应该这样做。
<强>更新强>
以下是基于您最近评论的更多信息。
如果您正在使用jQuery进行make和ajax调用并从REST API获取数据,我会做这样的事情(请记住这是伪代码):
$.ajax({
url: "event-data.php"
}).done(function(response) {
html = "";
//loop over events
foreach response.events as event
//add event html
eventHtml = "<div class='event'>" + event.name + "</div>";
//if organizer add edit tools
if response.is_organizer
eventHtml += "<div class='edit-controls'>...</div>";
//concat html string
html += eventHTML;
//insert html to dom
$('#content').html(html);
});
我不知道你是如何将你的html插入到dom中的,但这种方式只是你如何根据用户的角色构建html的一个例子。
在旁注中,我建议使用前端框架来处理这类内容。这是一个不错的名单:
https://github.com/showcases/front-end-javascript-frameworks
答案 1 :(得分:0)
你应该使用Php。 如果您使用Jquery来隐藏这些字段,那么每个人都可以“隐藏”#34;这些领域很容易。但是你可以将这两种技术结合起来。只需隐藏字段,如果somone进行编辑,服务器必须再次检查是否允许用户进行更改。