在使用AJAX过滤查询结果后,我试图获取一个IF语句来响应$ _SESSION ['view']值的变化。但是,IF语句不嵌套在AJAX div部分中,而是在邻近和下面。
我认为我需要的是AJAX页面中的函数,可能需要重新加载此IF语句,从而检查新的$ _SESSION ['view']值。
这是我目前的结构。
<?php session_start(); ?>
<body>
<div class="content">Content Here
<div class="filters">
<select name="view">View
<option value="standard">Standard</option>
<option value="gallery">Gallery</option>
</select>
</div><!--END filters-->
<div class="show"> Ajax Results Here </div>
</div>
// below displays the adjacent DIV
<?php
$sess == ($_SESSION['view'])
if(!isset($sess)||($sess=='standard')){
echo '<div>standard</div>'
} else {
switch ($sess) {
case 'gallery' : echo '<div>gallery</div>';
}
}
?>
</body>
我尝试在(外部)AJAX页面上使用以下内容启动刷新;
$prior = $_SESSION['view'];
$_SESSION['view'] = $_REQUEST['view']; //allows the filter to set the new value
$post = $_SESSION['view']
if($prior !== $post){header('Location:'.$_SERVER['PHP_SELF'].'?refresh=1');}
这不起作用,因为Header已经(自然地)发送了,但是我认为这个!==方法是朝着正确方向迈出的一步。
在第二次失败的尝试中,我尝试在AJAX脚本中添加“刷新页面”代码,但这只是重置了所有过滤器值 - 打败了这一点。
$(document).ajaxStop(function(){
window.location.reload();
});
如何获取AJAX(包含在外部文件中)以触发IF语句重新检查$ _SESSION值?