[英]Implement PHP logic to jQuery
在一個我有3個用戶Ben,Shane和Payne的系統中 ,該站點對所有用戶正常運行,並且具有相同的Menu系統。 但是我的任務是從核心添加一個菜單項,並且僅對Ben可見。
因此,由於Ben是孩子,我在菜單項中添加了Candy ,但是現在我無法更改PHP的核心說
if('Ben' === $user->name) {
// Show the Candy Menu
}
但是我希望Candy菜單只顯示Ben並隱藏起來。
如何使用jQuery ?
我不想弄亂PHP代碼,例如:
<?php if('Ben' === $user->name):?>
<script ></script>
<?php endif; ?>
我希望使用jQuery實現PHP的某些邏輯,所以,我不會搞砸PHP代碼,而是在jQuery中實現邏輯。 就像是:
//I am mixing PHP and jQuery here, I know it doesn't work but this is what I am looking for.
if('user' === 'Ben') {
$('#CandyMenu').show();
}
我該怎么做?
您可以將值存儲在JavaScript變量中:
var user = '<?php echo $user->name; ?>';
$('#CandyMenu').toggle(user === 'Ben');
但是,這應該在服務器端完成,當元素被隱藏時,它仍在頁面上。 使用jQuery(JavaScript)並不是這樣做的正確方法,特別是在您回顯敏感數據時。
您將不得不對PHP進行某種更改,否則您的JS無法知道當前用戶是誰。
如果您只是不想在Javascript代碼中間混用PHP,則可以在文檔頂部設置一些一次性PHP,以設置任何全局變量:
<script>
var myAppGlobals = {};
myAppGlobals.showCandyMenu = <?php echo ($user->name === 'Ben' ? 'true': 'false'); ?>;
// or
myAppGlobals.userName = '<?php echo addslashes($user->name); ?>';
</script>
然后使用
if (myAppGlobals.showCandyMenu)
$("#CandyMenu").show();
// or
if (myAppGlobals.userName === 'Ben')
$("#CandyMenu").show();
從您的Javascript開始。 您仍然在混合PHP和JS,但至少您是將其放在首位,而不是在各處混合使用。
當然,請記住,您用來設置菜單在客戶端的可見性的任何方法都容易受到濫用-任何具有JS知識的人都可以深入研究並顯示該菜單選項。 是否有問題取決於您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.