将PHP重定向到新窗口

时间:2014-06-21 09:03:52

标签: javascript php mysql

我有一个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应该在新页面中打开。

如果我使用target =" _blank"在reports.php中提交表单report6.php在另一个选项卡中打开并生成pdf,但是如果没有行报告,则在另一个选项卡中打开report.php说"没有找到行"。

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

如果我在reports6.php中给出一些输出,比如"回复我;"然后pdf打开正常..我想这与PHP的序列和什么有关。

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

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

感谢。

编辑:

以下是相关代码:

Reports.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)添加目标=&#34; _blank&#34;在reports.php中

2)在reports6.php中添加<script type="text/javascript" language="Javascript">window.open("cpdf.php")</script>

我想要的是什么:

如果有行,则从reports.php提交表单时,

cpdf.php在新选项卡中打开

如果没有重定向到仅在同一个标​​签中的reports.php(而不是在我得到的另一个标签中)

2 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:0)

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

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