Jquery+PHP表单-基于复选框选择的多个收件人

Jquery+PHP表单-基于复选框选择的多个收件人,php,jquery,forms,checkbox,Php,Jquery,Forms,Checkbox,我问这个问题是关于我的朋友的,所以我现在没有代码示例发布在这里。希望我足够清楚,有人能帮忙 因此,他有一个简单的联系方式,除了它有多个复选框,用户可以选择发送他们的请求到多个收件人。。。就像这样 我想知道飞行学校的情况 我对成为一名教师很感兴趣 我想有人联系我关于你的学位 名字 电子邮件 评论 因此,根据选中的复选框,它应该将该收件人添加到电子邮件功能中,以便他们接收用户的评论和兴趣 表单由jquery验证,并使用$.ajax函数将名称、电子邮件和注释字段发布到process.php。。。我们正

我问这个问题是关于我的朋友的,所以我现在没有代码示例发布在这里。希望我足够清楚,有人能帮忙

因此,他有一个简单的联系方式,除了它有多个复选框,用户可以选择发送他们的请求到多个收件人。。。就像这样

我想知道飞行学校的情况 我对成为一名教师很感兴趣 我想有人联系我关于你的学位

名字 电子邮件 评论

因此,根据选中的复选框,它应该将该收件人添加到电子邮件功能中,以便他们接收用户的评论和兴趣

表单由jquery验证,并使用$.ajax函数将名称、电子邮件和注释字段发布到process.php。。。我们正在验证是否至少选中了一个复选框,但是,我们还无法确定如何将其布尔值传递给process.php,并反过来将相关电子邮件地址添加到mail函数中


我确实意识到,如果不发布我们的代码,这是半模糊的,但我现在无法访问它。。。我在谷歌搜索了大约30分钟,试图找到一些可以合作的东西。任何帮助都将不胜感激。谢谢。

您只需检查您得到的值是否为真:

基本思想:

if(checkbox-1-ischecked)
    //send email to first recipent
end if
if(checkbox-2-ischecked)
    //send email to 2nd recipent
end if
if(checkbox-3-ischecked)
    //send email to 3rd recipent
end if
if(checkbox-4-ischecked)
    //send email to 4th recipent
end if

Etc

将元素命名为如下数组:

<input type="checkbox" name="mybox[]" value="foo@example.com">Foo</input>
<input type="checkbox" name="mybox[]" value="bar@example.com">Bar</input>
<input type="checkbox" name="mybox[]" value="hello@example.com">Hello</input>
<input type="checkbox" name="mybox[]" value="world@example.com">World</input>

这似乎回答了您的复选框查询。http://stackoverflow.com/questions/908708/how-to-pass-multiple-checkboxes-using-jquery-ajax-post

基本上,它会将一个数组发回php脚本,然后您可以对其进行解析,并根据勾选的内容/返回的变量,您可以将更多电子邮件地址附加到mail函数的“to”部分

对于更简单的实现,您可以将三个复选框分开,而不是放在一个数组中,然后ajax将它们分别放回原处。 HTML


请注意,与所有web-to-mail脚本一样,请确保清理所有VAR以防止垃圾邮件滥用

您可以简单地为所有复选框指定相同的名称,这实际上会产生一个复选框数组

<form name="someform" onsubmit="return validate(this)" action="process.php" method="post">
    <input type="checkbox" name="names[]" value="Saji">Saji
    <input type="checkbox" name="names[]" value="Muhaimin">Muhaimin
    <input type="checkbox" name="names[]" value='Muhsin'>Muhsin
    <input type="submit" value="Submit">
    <input type="reset" value="Reset">
</form>
在process.php中,您可以-

    $name_val=$_POST['names'];
    foreach($name_val as $values){
      //Here $values will contain only the values of the checkboxes you had selected.
      echo $values."<br />";
    }

只是一个提示,我知道这超出了问答的范围,但您必须确保清理所有post变量,以防止您的表单被垃圾邮件发送者劫持。
$to="";
if($_POST['teacher'] == 1) {$to = $to."joe@email.com,"};//append email
if($_POST['flight'] == 1) {$to = $to."bob@email.com,"};//append email
$to = rtrim($to, ","); //remove trailing comma
<form name="someform" onsubmit="return validate(this)" action="process.php" method="post">
    <input type="checkbox" name="names[]" value="Saji">Saji
    <input type="checkbox" name="names[]" value="Muhaimin">Muhaimin
    <input type="checkbox" name="names[]" value='Muhsin'>Muhsin
    <input type="submit" value="Submit">
    <input type="reset" value="Reset">
</form>
    $name_val=$_POST['names'];
    foreach($name_val as $values){
      //Here $values will contain only the values of the checkboxes you had selected.
      echo $values."<br />";
    }