【问题标题】:How to go from one page to another page when Ajax call is on in PHP?在 PHP 中打开 Ajax 调用时如何从一个页面转到另一个页面?
【发布时间】:2019-12-09 06:38:04
【问题描述】:

在 PHP 中重定向到另一个页面后如何继续运行 ajax 调用?

在 PHP 中打开 Ajax 调用时如何从一个页面转到另一个页面?

我的 ajax 调用正在执行一个非常复杂 的任务,这将需要 长时间 那么,是否可以 运行 ajax 调用 页面重定向后?

我让 ajax 调用 submit 按钮 click 并在该页面 重定向 到另一个页面之后页面,然后我的 ajax 调用是 Continue Running 在后端。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <title></title>
</head>
<body>
  <input type="text" name="altname" id="altname">
  <button id="btnSubmit">Submit</button>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(){
    $(document).on('click','#btnSubmit',function(){ 
    var altname = $("#altname").val();
        $.ajax({
            url:"http://localhost/z/backend-queue-job-php/queue_job.php",
            type:"POST",
            data:{altname:altname},
            success:function(result)
            {   
                alert(result.msg);
            }
        });
        window.location.href = "http://localhost/z/backend-queue-job-php/thankyoupage.php";
    });
}); 
</script>

【问题讨论】:

    标签: php jquery ajax codeigniter queue


    【解决方案1】:

    只能在 PHP 部分使用异步任务来完成。

    • 为每个任务分配一个 ID
    • 您的 ajax 将创建新任务或获取现有任务的状态

    【讨论】:

      【解决方案2】:

      在后台运行 PHP 脚本更简单的方法是使用 exec 或 shell_exec

      您可以在通过 ajax 调用的 php 文件中运行以下函数,如果您想存储日志信息,则将当前脚本的路径与日志路径一起传递:

      shell_exec("/path/to/php /path/to/queue_job.php > /path_to_log/debug.log 2>&1");
      

      【讨论】:

      • shell_exec("/path/to/php /path/to/queue_job.php 'alert' > 在这种情况下路径在哪?
      • 你问的是哪条路径?上述命令中的 all 必须是绝对路径(不是 URL)。
      • 你可以得到你提到的 php 文件的绝对路径:stackoverflow.com/questions/11604445/php-absolute-path-to-root
      • 这是行不通的,我试试这个......
      猜你喜欢
      • 2011-04-06
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多