2015-05-06 52 views
-3

我想要的是這樣的:隱藏按鈕,如果不是管理員

如果不是管理員,然後隱藏一些按鈕。但如果我做

if ($Admin == null) 
    { 
     echo "You are not admin"; //That works 
     //So we hide the button id="New" 
?>  
    <script type = "text/javascript"> 
     document.getElementById('New').style.visibility = "hidden";  
    </script> 
<?php } ?> 

但沒有任何反應。它說「你不是管理員」,但按鈕不隱藏

我知道如何隱藏字段通過單擊按鈕或選中複選框的功能,但我不知道如何通過使用「如果」如何做。 感謝您的閱讀

+1

使用的document.getElementById( '新的')的style.display = 「無」; –

+4

我建議不要只隱藏管理按鈕,但不要回應他們 – gbestard

+0

這是一個壞主意。理想情況下,按鈕應該不在頁面中,除非您是管理員用戶。千萬不要做這樣的客戶端。 ^^忍者! – Archer

回答

2

您不應該隱藏按鈕,而是根本不會回顯它。 除非「沒有聯繫」,可以更改HTML並訪問管理功能,換句話說,你的網頁可以砍死

1

最好的辦法是根本就沒有在所有與id"New"輸出的按鈕。

非常喜歡退而求其次:

如果你的代碼不能正常工作,這意味着這些東西:

  1. 按鈕還沒有在腳本運行時存在。輸出後面的,在頁面末尾,輸出按鈕後。

  2. 該按鈕沒有id="New"就可以了。要麼給它一個ID,或者如果我猜"New"value,你可以做document.querySelector("input[type=button][value=New]")而不是document.getElementById


無論你輸出的按鈕還是隱藏它,它是重要,無論服務器端代碼是實際運行時,按下按鈕檢查該用戶是管理員並無視該行爲,因爲請求可能是僞造的。你可能已經在做這件事了,但我想我會把它舉起來。

-1

顯示按鈕,當且僅當用戶是管理員:

<?php if (!!$Admin) { ?> 
    <!-- display the button --> 
<?php } ?> 
+0

你爲什麼使用雙重否定?你根本不需要感嘆號。 – Styphon

+0

它將$ Admin轉換爲布爾值。 –

+0

@Styphon,請閱讀:http:// stackoverflow。com/questions/2127260/double-not-operator-in-php –