【问题标题】:Redirect PHP to new window将 PHP 重定向到新窗口
【发布时间】:2014-06-21 09:03:52
【问题描述】:

我有一个 PHP 文件reports.php,它有一个表单,当点击提交时会转到reports6.php。

reports6.php 有 mysql 的代码,如果没有找到行,它会被重定向回 reports.php 并带有错误代码。

在reports6.php中我用来去reports.php

header ("location: reports.php")

但是,如果找到行,如果设置了一些参数并调用另一个 php 文件 (cpdf.php) 以再次使用标头重定向从这些参数创建 pdf。

我想要的是当用户从reports.php 中点击提交时.. cpdf.php 应该在新页面中打开。

如果我在提交表单时在reports.php 中使用target="_blank",report6.php 会在另一个选项卡中打开并生成pdf,但是如果没有行reports.php 在另一个选项卡中打开并显示“未找到行”。

如果我不在reports.php 中使用_blank 并在reports6.php 中使用javascript 打开cpdf.php 并将标头重定向到reports.php 它不起作用(我已经给出了允许弹出窗口但我不知道为什么cpdf.php 打不开)..

如果我在 reports6.php 中给出一些输出,例如“echo me;”然后pdf打开正常..我想这与php的顺序和或其他东西有关。

当我搜索其他先前提出的问题时,无法使用标题并在 php 的新选项卡中打开..

那么在这种情况下我该怎么办?

谢谢。

编辑:

以下是相关代码:

报告.php

<form name="report6" action="report6.php" onsubmit="return check_digit('report6','system_id',' System ID ')"method="post">
        <td><b>Print old Invoice by System ID: </b></td>
        <td><input type="text" name="system_id" ></td>
        <td><input type="submit" name="Run" value="Run"></td>
</form>

Reports6.php

$sql=blah blah blah
if ( $row_cnt == 0 ) 
    { 
        $mysqloutput="No such System ID in the Database";
        $_SESSION["mysqloutput"]=$mysqloutput; 
        mysqli_close($con);
        die(header ("location: reports.php"));
    }
else
{ header ("location: cpdf.php"); }

cpdf.php

//生成pdf的代码

我尝试过的:

1) 在reports.php中添加target="_blank"

2) 在reports6.php中添加&lt;script type="text/javascript" language="Javascript"&gt;window.open("cpdf.php")&lt;/script&gt;

我想要什么:

当从reports.php提交表单时,cpdf.php在新选项卡中打开(如果有行)

如果不重定向回reports.php 仅在同一选项卡中(而不是在另一个选项卡中,因为我得到它)

【问题讨论】:

  • 因为这也被标记为 javascript.. 为什么不在它为您创建一个新窗口之前创建一个请求来检查提交的值是否有结果.. 使用 ajax..

标签: javascript php mysql


【解决方案1】:

您无法在 PHP 中打开新窗口,因为它是服务器端脚本。但是,当您希望它在新窗口中打开时,您可以在标题位置添加一个指示器,如下所示:

header("Location: reports.php?newwindow=true"); exit();

在您的报告.php 文件中,您可以选择该 GET 方法,并检查它是否已设置,并使用 javascript 强制在新窗口中打开窗口。

<?php if(isset($_GET['newwindow']) && $_GET['newwindow']=="true"){ ?>
<script>[... script that handles new window here ...]</script>
<?php } ?>

【讨论】:

  • 感谢您的指导。我将在report6.php 中设置一个$_SESSION 变量并在reports.php 中检查它以回显
【解决方案2】:

如果你想使用 php 打开一个新窗口,这里是正确的代码

echo "<script language=\"javascript\">window.open('cpdf.php',\"_blank\");</script>"; 

【讨论】:

    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 2010-10-31
    • 2013-05-29
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    相关资源
    最近更新 更多