想要关闭弹出窗口并在控制器上执行 PHP 脚本后重定向到相应的页面,没有任何事件


want to close popup and redirect to respective page without any event just after executing the PHP script on controller

我在控制器上有我的PHP代码,我有一个弹出窗口,之后完成弹出窗口的功能,我想要关闭我的弹出窗口和 wan 以重定向到相应的页面。我如何使用 PHP 实现这一点。我尝试使用以下代码,但它不起作用

$strRedirectUrl = $this->m_strSecureBaseName . 'Apartments/module/application_application_list/action/view_application_list/'; echo '<script type="text/javascript">
     window.opener.location.replace(' . $strRedirectUrl . ');
     window.close;  <script>';

请帮助我。

谢谢

在弹出页面中调用此 JS:

window.opener.location.href = "http://some/new/location";
window.close();

PHP代码

echo"<script language='javascript'>";
echo("window.opener.location.href = '" . $strRedirectUrl . "';");
echo("window.close();");
echo "</script>";

演示:

第 1 页文件 : page_1.php

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
// Popup window code
function newPopup(url) {
    popupWindow = window.open(
        url,'popUpWindow','height=700,width=800,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes')
}
</script>
</head>
<body>
<a href="JavaScript:newPopup('page_2.php');">Open a popup window</a>
</body>
</html>

第 2 页:文件 : page_2.php

<?php
$strRedirectUrl = "page_1.php";
echo"<script language='javascript'>";
echo("window.opener.location.href = '" . $strRedirectUrl . "';");
echo("window.close();");
echo "</script>";
?>

新编辑的代码

PHP代码

if (success condtion) {
      $strRedirectUrl    = "page_1.php";
      echo"<script language='javascript'>";
      echo("window.opener.location.href = '" . $strRedirectUrl . "';");
      echo("window.close();");
      echo "</script>";
}
else
{
echo json_encode(array(
    'status' => 'error',
    'message'=> 'error message'
));
}

Jquery Code

     $.ajax({
        type: "post",
        url: "postride.php",
        dataType:"json",
        success: function (response) {
            if(response.status === "error") {
                // do something with response.message or whatever other data on error
            } else {
              return false;
            }
        }
    });