2017-05-27 22 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

作品!謝謝。 –