我的页面上有一个按钮(setarea),它在单击时设置会话变量。页面上还有一些其他字段会根据此会话变量进行更改。这就是为什么每当单击该按钮时,我想自动刷新整个页面,以便使用会话变量的新值刷新其他字段。这是我的代码:
function setarea(){
var area_id = jq("#splash_area").val();
jq.ajax({
type: 'POST',
url: '<?php echo Mage::getBaseUrl(); ?>setsession/index/setarea',
data: {area_id:area_id},
success: function(data) {
}
});
window.location.reload(true);
}
使用此代码,页面刷新但会话变量不刷新 - 它仍然与以前相同。
有趣的是,当我使用F5进行手动刷新时,页面会正确刷新。
我在这里做错了什么?
答案 0 :(得分:1)
由于AJAX是异步的,因此只要发出AJAX请求,reload
就会立即触发。 JS不等待对AJAX请求的响应。将来电reload
移至success
功能。
function setarea(){
var area_id = jq("#splash_area").val();
jq.ajax({
type: 'POST',
url: '<?php echo Mage::getBaseUrl(); ?>setsession/index/setarea',
data: {area_id:area_id},
success: function(data) {
window.location.reload(true);
}
});
}
答案 1 :(得分:0)
尝试替换
window.location.reload(true);
带
header("Location: YourFile.php");