2017-05-27 20 views
2

我有this jQuery context-menu我需要生成某些菜单项,具体取决于PHP $_SESSION变量。例如,如果我是普通用户,我只会看到“”和“编辑”选项。但是如果我是管理员用户,我会看到“删除用户”选项。根据php会话变量生成jquery contextmenu项目?

事情是这样的:

$(function() { 
    $.contextMenu({ 
    selector: '.context-menu-one', 
    autoHide: true, 
    callback: function(key, options) { 
     if(key=="Edit") myFunction1(this); 
     if(key=="New") myFunction2(this); 
     if(key=="Del") myFunction3(this); 
    }, 
    items: { 
     "New": {name: "New", icon: "fa-plus-circle"}, 
     "Edit": {name: "Edit",icon: "fa-pencil-square-o"}, 
     var grade = <?php echo $_SESSION["grade"];?>;  //this doesn't work 
     if(grade == "admin"){        //but this is what I 
     "Del": {name: "Delete user", icon: "fa-trash"}, //want 
     } 
     "sep1": "---------", 
     "quit": {name: "Close", icon: function(){ 
      return 'context-menu-icon context-menu-icon-quit'; 
     } 
     } 
    }, 
    });  
}); 

关于如何做到这一点任何想法?

编辑:

的PHP $_SESSION["grade"]是确定的,它返回的值,所以我有没有问题。

+0

你有echo'd'$ _SESSION [“等级”]之前在jQuery中使用?如果你知道它返回一个值,那么,试着将它赋值为'var grade ='<?php echo“$ my_admin_grade”;?>';'(按照DOC:'字符串写在双引号或单引号内。 '),然后检查控制台是否设置了“等级”。好点 ? – OldPadawan

+0

是的,它返回值。这不是问题@OldPadawan,问题是评论行不是我想要的正确方法。这就是为什么我要问如何去做。 –

回答

1

您的字典中间不能有语句(特别是变量赋值和if语句)。你需要提取它类似于这个

$(function() { 
    var options = { 
    selector: '.context-menu-one', 
    autoHide: true, 
    callback: function(key, options) { 
     if(key=="Edit") myFunction1(this); 
     if(key=="New") myFunction2(this); 
     if(key=="Del") myFunction3(this); 
    }, 
    items: { 
     "New": {name: "New", icon: "fa-plus-circle"}, 
     "Edit": {name: "Edit",icon: "fa-pencil-square-o"}, 
     "sep1": "---------", 
     "quit": {name: "Close", icon: function(){ 
      return 'context-menu-icon context-menu-icon-quit'; 
     } 
     } 
    }, 
    } 
    var grade = <?php echo $_SESSION["grade"];?>;  
    if(grade == "admin"){        
    options.items["Del"] = {name: "Delete user", icon: "fa-trash"}, 
    } 
    $.contextMenu(options);  
});) 
+0

作品!谢谢。 –