一个表单和两个动作,两个在PHP中提交

时间:2014-04-02 16:35:18

标签: php forms excel pdf-generation action

参与一个项目,用户可以从日期和日期中选择,然后选择一个无线电接口。之后选择pdf或excel来生成首选格式。  enter image description here

问题是表单,如果按下excel,我想要它动作generateExcel.php,如果按下PDF,我希望它动作generatePdf.php。这是我走了多远而还没有工作:

<form action='generatePdf.php' method='Post'/>

Fra Dato: <input type="text" name="fraDato" value="<?php echo date('d-m-Y'); ?>" /> 
Til Dato: <input type="text" name="tilDato" value="<?php echo date('d-m-Y'); ?>"> <br> 
<input type="radio" name="hent" value="timesmaling">Times malinger<br>
<input type="radio" name="hent" value="tredjetimesmaling">Tredje times malinger <br>
<input type="radio" name="hent" value="oppgaver">Oppgaver <br>
<input type="radio" name="hent" value="dagvakt">Dagvakt <br>
<input type="radio" name="hent" value="kveldsvakt">Kveldsvakt <br>
<input type="radio" name="hent" value="kontrollcm">Kontroll CM <br>

<input type='submit' name='pdf' value='PDF'>

<form action='generateExcel.php' method='Post'/>
<input type='submit' name='excel' value='excel'>

</form>

2 个答案:

答案 0 :(得分:2)

可以使用按钮上的HTML5格式属性覆盖父窗体的action属性。见https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button

<input type='submit' name='pdf' value='PDF' formaction='generatePdf.php'>
<input type='submit' name='excel' value='excel'  formaction='generateExcel.php'>

浏览器支持看起来非常不错:http://www.wufoo.com/html5/attributes/13-formaction.html

然而,webeno的答案肯定适用于所有浏览器,并且可以更容易地在一个文件中管理所有表单处理代码。

答案 1 :(得分:1)

我建议您将两个脚本放在同一个文件上,然后根据单击的按钮进行验证。

编辑:如果您的2个文件太大(或者您希望因任何其他原因将它们分开),您仍然可以使用include(或require - 有关差异的更多信息:Difference between "include" and "require" in php)。

原始文件:

<form action='generate.php' method='Post'> <!-- removed the slash from the end here -->

Fra Dato: <input type="text" name="fraDato" value="<?php echo date('d-m-Y'); ?>" /> 
Til Dato: <input type="text" name="tilDato" value="<?php echo date('d-m-Y'); ?>"> <br> 
<input type="radio" name="hent" value="timesmaling">Times malinger<br>
<input type="radio" name="hent" value="tredjetimesmaling">Tredje times malinger <br>
<input type="radio" name="hent" value="oppgaver">Oppgaver <br>
<input type="radio" name="hent" value="dagvakt">Dagvakt <br>
<input type="radio" name="hent" value="kveldsvakt">Kveldsvakt <br>
<input type="radio" name="hent" value="kontrollcm">Kontroll CM <br>

<input type='submit' name='pdf' value='PDF'>
<input type='submit' name='excel' value='excel'>

</form>

generate.php:

if (isset($_POST['pdf'])) {
    include('generatePdf.php');
}

if (isset($_POST['excel'])) {        
    include('generateExcel.php');
}

EDITED

或者你可以在单独的文件上使用重定向(generate.php - 确保此页面上没有其他内容):

if (isset($_POST['pdf'])) {
    header('Location: generatePdf.php');
}

if (isset($_POST['excel'])) {        
    header('Location: generateExcel.php');
}