如何为具有不同操作的表单包含两个提交按钮

时间:2013-08-19 16:29:15

标签: php html forms

以下是我的情景:

我的主页上有一个html表单,用户可以输入数据并使用post方法提交表单。

<form  id="main" name="main" action="#text" method="post" > 


    //codes goes here


    <input  id="generate" type="submit"  name="script" value="create output" />

</form>

上面处理的PHP代码是

     <?php 

echo '<form action="#text" method="post">'; 

echo '<textarea onclick="this.select()" name="output_textarea" id="output_textarea" cols="100" rows="25" readonly>';

//above form inputs will echo in this textarea

<-------PHP codes for download here---->
<-------PHP codes for email here---->


<input type="submit" id="download"  value="Download" name="download"></input>
<input type="submit" id="send"  value="send" name="send"></input>

echo '</textarea>';
echo '</form>';
?>

我正在回复表单输出到textarea,我需要 下载按钮 电子邮件按钮

保存\发送textarea。这是我面临的问题是第二页上的提交按钮执行下载php功能,而不是电子邮件。

那么,如何为两个提交函数分配两个单独的函数?下载并发送电子邮件?

我没有在这里使用单独的php页面,而是在我添加html的同一页面上使用php代码。

2 个答案:

答案 0 :(得分:3)

按钮只会在按下它们时添加到$ _POST,并且因为您一次只能按一个按钮,

你可以这样做或类似的东西: -

if ( isset( $_POST['download'] ) ) {
    do_dowload_stuff();
}

if ( isset( $_POST['email'] ) ) {
    do_email_stuff();
}

答案 1 :(得分:0)

将您的代码更改为:     

if(isset($_POST['download'])){
    // download code here
    echo "Download ".$_POST['output_textarea'];
} elseif(isset($_POST['send'])){
    // email code here
    echo "Email ".$_POST['output_textarea'];
}


echo '<form action="#text" method="post">'; 
    echo '<textarea onclick="this.select()" name="output_textarea" id="output_textarea" cols="100" rows="25" readonly></textarea>';
    echo '<input type="submit" id="download"  value="Download" name="download"/>';
    echo '<input type="submit" id="send"  value="send" name="send"/>';
 echo '</form>';
?>