2014-04-01 106 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

是的老板..谢谢 –