我在该页面上有一个包含多个表单(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);
}
基本上我想做的是在客户提交表单时向自己发送电子邮件。但根据客户提交的表单,我想发送相应的电子邮件。
答案 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")){}