将带有jQuery所选插件的选项multiple传递到PHP表单
我有一个HTML表单。我有一些jQuery动画(对话框弹出和验证),它将数据发送到将带有jQuery所选插件的选项multiple传递到PHP表单,php,jquery,forms,jquery-chosen,Php,Jquery,Forms,Jquery Chosen,我有一个HTML表单。我有一些jQuery动画(对话框弹出和验证),它将数据发送到form.php 我的问题是:我收到带有姓名、电子邮件和电话的电子邮件,但只传递了一个选项。我没有多重选择 有人能帮我吗 这是我的代码: HTML 名称 电子邮件 电话 交替未定节拍 底部 言论自由 操朋友 绝望的街道 如果我今晚死了 臭名昭著的 明显的行为 下飞机 恼火的 以下是HTML页面顶部的jQuery: $(文档).ready(函数(){ $('#form_id')。提交(函数(){ no
form.php
我的问题是:我收到带有姓名、电子邮件和电话的电子邮件,但只传递了一个选项。我没有多重选择
有人能帮我吗
这是我的代码:
HTML
名称
电子邮件
电话
交替未定节拍
底部
言论自由
操朋友
绝望的街道
如果我今晚死了
臭名昭著的
明显的行为
下飞机
恼火的
以下是HTML页面顶部的jQuery:
$(文档).ready(函数(){
$('#form_id')。提交(函数(){
nom=$(this.find(“#nom”).val();
email=$(this).find(#email”).val();
tel=$(this.find(“#tel”).val();
/*beats=$(this.find(“#beats”).val()*/
beats=$(this.find(“#beats”).val();
$.post('form.php'{
诺姆:诺姆,
电邮:电邮,,
电话:电话:,
节拍:节拍
},函数(数据){
如果(data.error=='mail\u invalide'){
$('#basic-modal-content2').modal();
返回false;
}else if(data.error=='vide'){
$('#basic-modal-content1').modal();
返回false;
}否则{
$('#basic-modal-content3').modal({onClose:function(){
$(“输入”).val(“”);
$(“文本区域”).val(“”);
$.modal.close();
}});
返回false;
}
}“json”);
返回false;
});
});
最后是我的form.php
<?php
$e = array();
$e['error'] = "Non valid form";
if(empty($_POST['nom']) || empty($_POST['tel'])){
$e['error'] = "vide";
}
elseif(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$e['error'] = "mail_invalide";
}
else{
$e['error'] = 'Ok';
$nom = $_POST['nom'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$beats = $_POST['beats'];
$to = 'w-productions@hotmail.com';
$sujet = 'New message from W-Productions.com '.$email;
$body = "New message from W-Productions.com \n\n
Name: $nom \n
Emali: $email \n
Phone: $tel \n\n
Beats: $beats";
mail($to, $sujet, $body);
}
echo json_encode($e);
?>
$\u POST['beats']
是所选选项的数组
如果您只需要所选选项的列表,请尝试:
$beats = implode(',', $_POST['beats']);
在HTML方面,您不需要为option元素设置名称属性。
您还可以简化此部分:
nom=$(this.find(“#nom”).val()
tonom=$(“#nom”).val()代码>当您使用IDs时。您应该使用伪选择器获得所选选项:
$(this).find("#beats option:selected").each(function(){
beats.push($(this).val());
})
$beats = implode(',', $_POST['beats']);
$(this).find("#beats option:selected").each(function(){
beats.push($(this).val());
})