【问题标题】:why am I not redirected after a ajax post?为什么我在 ajax 发布后没有重定向?
【发布时间】:2020-02-24 16:01:03
【问题描述】:

我正在使用一个页面 (file1.php) 将特定数字提交到另一个 php 文件 (file2.php) 第二个 PHP 文件用于从数据库中获取数据并提取信息,然后将其返回到 file1.php, 这是 file2.php

<?php
require('../model/encapsulation.php');
require('../model/connection.php');
require('../model/bunchofmethod.php');
if (isset($_POST['SpecificNumber'])) {
    $NS = $_POST['SpecificNumber'];
    $info = execRequest::folderInfoFromNS($NS, $dbh);
    $name = $info['name'];
    $firstName = $info['firstName'];
    $UID = $info['UID'];
    $idFound = json_encode(array($name, $firstName, $UID));
}
?>
<!DOCTYPE HTML>
<html lang="fr">
<head>
    <script src="../JS/jquery-3.4.1.min.js"></script>
    <?php
    if (isset($idFound)){
        ?>
        <script>
        $(document).ready(function () {
            $.post("../view/file1.php",
                {
                    idFound: <?php echo $idFound?>,
                    searchDone: 1
                });
        })
    </script>
    <?php
    }
    ?>
</head>
</html>

当我使用 file1 提交特定数字时(它只是一个常规表单和一个 php 部分,如果设置了 vardump $_POST['idFound'])我被重定向到 file2 但没有再次重定向到 file1 ,为什么?

【问题讨论】:

  • 因为您在文件 2 中没有重定向。
  • 我没有看到重定向代码。
  • 其实你不需要AJAX,除非你阻止了帖子的重定向动作。
  • "从数据库中获取数据并提取信息,然后将其返回到 file1.php" 您可以通过在 file2.php 中使用所需数据创建响应来执行此操作,而不是通过创建对 file1 的新请求.php

标签: php ajax redirect post


【解决方案1】:

我想你可能误解了这里的过程。

如果您希望 file1 向 file2 发出请求,并希望 file2 发送响应,那么在 file2 中编写代码向 file1 发出 AJAX 请求是没有意义的。您不需要对 file1 的 new 请求(因为这会创建对 file1 脚本的 new 实例的 new 调用)。您需要的只是让 file2 为来自 file1 的原始实例的请求提供响应

因此,如果您希望 file2 响应并将 JSON 数据返回到 file1,则只需 echo 即可:

$idFound = json_encode(array($name, $firstName, $UID));
echo $idFound;

(并摆脱所有的 HTML 和 jQuery 代码)。

回显的数据将作为对 file1 请求的响应返回。

【讨论】:

  • 我应该在 file1 中做什么来请求 file2 ?我现在有点迷路了,因为起初我只想这样做,如果 file to 就像一个将数据发布到 file1 的表单
  • 如果您想从 file2 返回 JSON,那么从 file1 进行 AJAX 调用可能最有意义(例如使用 jQuery 的 $.get())。这样您就可以与 file2 对话,而无需用户离开 file1 或刷新页面。 JSON 数据将在响应中返回到 file1,您可以使用 Javascript 对其进行处理,将其显示在页面上,或者您想要的任何内容。如果您需要更多示例,请查找 jQuery AJAX 教程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 2022-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多