簡體   English   中英

實現jQuery的PHP邏輯

[英]Implement PHP logic to jQuery

在一個我有3個用戶Ben,ShanePayne的系統中 ,該站點對所有用戶正常運行,並且具有相同的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM