1

如果文件不存在但没有重定向,我正在尝试在新页面中进行重定向,但如果我只写警报,那么它正在工作。请帮我。

//php code

<?PHP 
if(isset($_POST["bills"]))
{
if($_POST[month]=='Select Month' || $_POST[year]=='Select Year'){$msg="Please select valid month or year";}
else if(file_exists($path.$_POST["month"].$_POST["year"].'.pdf')){header('location:'.$path.$_POST[month].$_POST[year].'.pdf');}
else{?>
<script type='text/javascript' language="javascript">document.getElementById('downloadlink').click();</script>
<?PHP }
}
?>

//html code

<form action="electricitybills.php" method="post" >
<select name="year">
<?PHP include('include/billsyear.php'); ?>
</select>
<select name="month">
<?PHP include('include/billsmonth.php'); ?>
</select>
<div class="gobutton"><input type="submit" name="bills" value="GO"></div>
</form>

    </div>
<br><br><br><a id="downloadlink" href="http://www.google.com" target="_blank" style="display:none;">link text</a></form>
4

3 回答 3

0

使用 jquery 的 .ready 函数。因为您试图在 document.getElementById('downloadlink') 生成之前访问它。

<a id="downloadlink" href="http://www.google.com" target="_blank" style="display:none;">link text</a>
<?PHP 
if(isset($_POST["bills"]))
{
if($_POST[month]=='Select Month' || $_POST[year]=='Select Year'){$msg="Please select valid month or year";}
else if(file_exists($path.$_POST["month"].$_POST["year"].'.pdf')){header('location:'.$path.$_POST[month].$_POST[year].'.pdf');}
else{?>
<script type='text/javascript' language="javascript">
$('#downloadlink').trigger('click');

//html code

<form action="electricitybills.php" method="post" >
<select name="year">
<?PHP include('include/billsyear.php'); ?>
</select>
<select name="month">
<?PHP include('include/billsmonth.php'); ?>
</select>
<div class="gobutton"><input type="submit" name="bills" value="GO"></div>
</form>

    </div>
<br><br><br></form>

试试这个。我希望它会帮助你!

于 2013-02-04T07:23:30.667 回答
0

在 php 中,您可以使用重定向:

header('location: www.google.com');

或在 javascript 中:

location.href = "http://www.example.com/test";
于 2013-02-04T08:06:46.760 回答
0

click()- 执行对元素的单击,就像用户手动单击它一样。在大多数浏览器中,click() 仅适用于非“提交”或“重置”的表单 INPUT 元素。它不能用于模拟点击链接或表单提交按钮。

downloadlink实际上是link最有可能的,这就是为什么它不起作用

请参阅此链接以获取click()文档

于 2013-02-04T07:12:44.807 回答