手动刷新与location.reload

时间:2016-03-16 01:46:59

标签: php jquery

我的页面上有一个按钮(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进行手动刷新时,页面会正确刷新。

我在这里做错了什么?

2 个答案:

答案 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");