【问题标题】:PHP Redirect breaks ajax so force one time Jquery page refreshPHP Redirect 打破了 ajax 所以强制一次 Jquery 页面刷新
【发布时间】:2014-10-06 13:22:21
【问题描述】:

我正在使用 jquery mobile 1.4 创建一个 web 应用程序。我有一个表单,用户可以将某些内容上传到数据库。上传后,他们被重定向到另一个页面,我认为最好的办法是通过检查表单上的 php 会话变量以及是否不存在来“禁用”后退按钮(他们在完成任务后按下回) 用户被重定向回表单的开头,以防止他们将数据输入数据库两次。我用于此的代码是

if(!isset($_SESSION['RES_CUSTOMERID'])){
    header("Location: my_page_here.php",TRUE,301);
}

但是,my_page_here.php 页面使用 ajax 加载用户可以从中选择的表。在此重定向之后,表不再加载,我必须刷新页面才能获取任何数据。如果客户来自此页面,我认为解决此问题的方法是强制刷新 jquery。我这样做的方式是:

window.onload = function() 
{         
    if (!window.location.search) 
    {   
        setTimeout("window.location+='?fromCustRes';", .10000000);
    } 
} 

这可行,但是在使用 android 选项卡时它有点错误,因为您可以看到闪烁。我想通过仅在用户使用$_SERVER['HTTP_REFERER']; 来自此特定页面并创建隐藏输入值以将其传递给jquery并将其写入我的函数但我无法让它工作时才刷新它来“修复”这个问题.这是我一直在尝试做的:

<input type='hidden' name='from' id='from' value=<?php echo $from;?> /> 

window.onload = function() 
{ 
    if ((($('#from').val()) === 'my string' )     
    if (!window.location.search) 
    { 
        setTimeout("window.location+='?fromCustRes';", .10000000);
    } 
} 

我已经尝试了一些变体,但我什么都做不了,它只是给了我一个空白页,就像我正在破坏 ajax。如果有人对此有任何解决方案或有任何更好的想法让重定向加载 ajax 而无需刷新页面,我们将不胜感激!

【问题讨论】:

  • 您只想要一个有效的重定向,您考虑使用 javascript 进行重定向吗?
  • 我用php因为需要根据会话变量是否存在..?
  • 我希望我理解你的问题?也许这可能有助于 echo "";
  • 哈哈,这很有效,我很生气它是如此简单!非常感谢,如果您将其写为答案,我会接受并+1。干杯:)

标签: javascript php jquery ajax jquery-mobile


【解决方案1】:

试试这个

 echo "<script> window.location.replace(\"index.php\")</script>";

【讨论】:

    猜你喜欢
    • 2013-01-18
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2021-10-28
    相关资源
    最近更新 更多