在一个页面上有多个表单,并决定使用PHP提交哪个表单?

时间:2011-08-13 14:19:20

标签: php javascript html forms email

我在该页面上有一个包含多个表单(2个表单)的页面。

在页面的页脚中有一个调用表单和一个联系人表单。

因此,客户可以选择只输入一个电话并按一个表格提交,或者他们可以用姓名,电子邮件和消息填写另一个表格,然后按提交。

我正在开发一个PHP mail()函数来分隔哪个表单正在提交,但是我上次忘记了很多编程,所以我再次向你求助于在这里做什么。

如何在PHP代码中分隔哪个表单已提交?

这就是我现在在php中所拥有的:

$type = $_POST['type'];

    if($type == 'callup'){
        $tel_nr = $_POST['tel'];

        $to     =       'info@domain.se';
        $subject    =   'Call customer';
        $message    =   'Client telephone nr is '.$tel_nr.'.';
        $message    .=  '\n';
        $message    .=  'Client signed in at this date and time: '.date('Y-m-d').' Time: '.date('H:m:s').'';

        mail($to, $subject, $message);

    }

基本上我想做的是在客户提交表单时向自己发送电子邮件。但根据客户提交的表单,我想发送相应的电子邮件。

4 个答案:

答案 0 :(得分:3)

使用多个名称进行提交:

以您的第一种形式:

<input type="submit" name="address" value="Submit Address" />

以你的第二种形式:

<input type="submit" name="zipcode" value="Submit Zipcode" />

然后,在服务器端,检查可用的名称:

if (isset($_POST['address'])) {
    // ...
} else if (isset($_POST['zipcode'])) {
    // ...
}

答案 1 :(得分:2)

将每个表单发送到不同的操作:

<form action="foo.php" method="post">
    <!-- phone number form -->
</form>

<form action="bar.php" method="post">
    <!-- name/email/message form -->
</form>

然后,每个PHP脚本都会执行它对给定输入所需的操作,并在最后重定向回到表单页面。优点:每个脚本只需要担心自己的一组输入,并且避免在“动作”标志上切换的大if和/或switch

答案 2 :(得分:0)

如果您只有一个表单,则可以使用更好的名称来标识每个表单。例如,您可以为每个输入对象添加前缀form1_,为每个第二个表单输入对象添加form2。然后,您可以为每个输入对象添加默认值以标识该对象。

答案 3 :(得分:0)

或者您可以添加隐藏字段并检查该字段是否已设置并处理一种表单。 简单的方法是使用array_key_exist

检查该键是否作为数组的一部分存在
if(array_key_exist("form1")){}
else if(array_key_exist("form2")){}