2014-04-01 130 views
-3

我不知道該說什麼,但是,我有一個會話變量的橫幅,如果該會話變量設置,並有一個值1,那麼我已經顯示該橫幅。我也有一個按鈕來隱藏該橫幅,我已經調用了一個JavaScript函數onclick該按鈕。是否可以防止頁面加載時加載php代碼?

所以我創建了一個簡單的JavaScript函數,並添加了一些php代碼,用php標記來取消設置會話變量。我也可以使用ajax來取消會話變量的設置。但我想用這個函數來做這個事情,爲什麼要做ajax調用。

我有一些代碼:

<?php if($_SESSION['SHOW_BANNER']==1){ ?> 

    <div id="banner">Banner goes here</div> 
    <button onclick="hideit()">Hide</button> 

<?php } ?> 

這裏是jQuery函數:

<script> 
    function hideit() 
    { 
     <?php unset($_SESSION['SHOW_BANNER']); ?> 
     $("#banner").hide(); 
    } 
</script> 

當我重新加載頁面每次,會話變量沒有設置。 任何幫助..

+1

當然作爲PHP代碼是由服務器中的每個頁面重新加載時間解析它會取消設置。沒有辦法阻止。 – D4V1D

+0

嗨昆汀..我想你需要閱讀我的問題,你再次給予參考..他們都是不同的。在我的情況下,php代碼正在執行,但在引用的問題php代碼不工作.. –

+0

我想我應該使用ajax ..謝謝史蒂夫 –

回答

1

您不能直接從JavaScript執行PHP代碼。當網頁顯示在服務器端執行PHP代碼,如果你有如下語法:

function hideit() 
{ 
    <?php unset($_SESSION['SHOW_BANNER']); ?> 
    $("#banner").hide(); 
} 

它執行每次未設置時,頁面加載和這段代碼的結果返回給JavaScript。唯一可以取消設置會話變量的方法是在服務器端執行代碼,只需使用ajax調用即可。

function hideit() 
{ 
    $("#banner").hide(); 
    $.get("hideBanner.php"); 
} 

而且在hideBanner.php只執行

<?php unset($_SESSION['SHOW_BANNER']); ?> 
+0

是的老闆..謝謝 –