【问题标题】:Delete button show only user which book event and Admin in fullcalendar.js删除按钮仅显示用户在 fullcalendar.js 中的预订事件和管理员
【发布时间】:2017-09-21 09:31:30
【问题描述】:

我正在使用 fullCalendar.js 和 codeigniter 的反手制作活动预订系统,首先有 2 个角色用户和管理员,用户可以预订活动并删除活动,但我只想显示删除按钮 Admin 和用户预订活动。所以谁能告诉我这是怎么可能的。模式框中的删除按钮并显示在日历中的 eventClick 上。我的 Html 和 javascript 是

<div id="calendarModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Event Details</h4>
    </div>
    </div>
    <input type="hidden" id="eventID"/>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
        <button type="submit" class="btn btn-danger" id="deleteButton">Delete</button>
    </div>
</div>

//----------------------Javascript---------- ---------

$('#deleteButton').on('click', function(){
       // delete button
       doDelete();
   });
function doDelete(){
        $("#calendarModal").modal('hide');
       var eventID = $('#eventID').val();
       var baseUrl = document.location.origin;
       $.ajax({
           url: baseUrl+'/mrbs/api/post_api',// 
           data: 'action=delete&id='+eventID,
           type: "POST",
       });
     $('#calendar').fullCalendar('refetchEvents');  
   }

提前谢谢........:)

【问题讨论】:

  • 显示表格事件和用户
  • 你说的是SQL表吗??
  • @codexxx yess 用于预订和用户的表结构
  • 会议用:- prnt.sc/gnuae4
  • 用户:-prnt.sc/gnuav2

标签: javascript jquery codeigniter fullcalendar


【解决方案1】:

您可能应该在服务器端控制删除按钮的显示,而不是在客户端的 Javascript 中。这意味着在渲染模式时使用 Codeigniter,例如:

<div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
    <?php if ( ... test if user is admin ... ) { ?>
        <button type="submit" class="btn btn-danger" id="deleteButton">Delete</button>
    <?php } ?>
</div>

在实际执行删除之前,您还应该在控制器方法 (/mrbs/api/post_api) 中确认用户是管理员。

更新

如果您只想显示当前用户创建的事件,您应该在服务器端事件源上处理它。您尚未发布您的 Fullcalendar 代码,但您必须有类似的内容:

$('#calendar').fullCalendar({
    // ... code
    events: "some/path/to/server-side-json",
 });

在您的 some/path/to/server-side-json 控制器方法中,检查进行此查询的用户的用户 ID,并仅返回该用户创建的事件。

【讨论】:

  • 但是如何从 ajax 发送 u-id(预订活动的用户 id)??
  • 你的意思是你想从你的事件源发送用户ID?事件源可以包含任何内容,但您为什么要这样做?也许您只想检索当前用户的事件?如果是这样,您需要将用户 ID 发送到您的事件源后端,对吗?
  • 不,我想告诉用户您预订了哪个活动,您可以编辑或删除
  • 以及如何查看日历中显示的活动是否被当前登录的用户或其他预订此活动的用户预订?
  • 实际上我需要不同的帮助,我可以在日历上呈现事件并在事件详细信息上添加 eventClick 操作,当单击预订事件时,它会显示一个模型弹出窗口,其中包含有关事件的详细信息和删除按钮但我试过 if(bookid==sessionid) 但没有隐藏删除按钮
猜你喜欢
  • 1970-01-01
  • 2019-08-29
  • 2016-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多