我有一个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(而不是在我得到的另一个标签中)
答案 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>";