我尝试使用ajax将多个选择框的值发送到邮件/检查脚本 但是当变量到达php脚本时,数组丢失了它的第一条记录,我无法找到
jQuery(function() {
var paraTag = jQuery('input#submit').parent('div');
jQuery(paraTag).children('input').remove();
jQuery(paraTag).append('<input type="button" name="submit" id="submit" class="btn btn-default btn-lg" value="Verstuur" />');
jQuery('#contact-form input#submit').click(function() {
jQuery('#contact-form').append('<img src="images/loading.gif" class="loaderIcon" style="width:100px; margin:-20px;" alt="Loading..." />');
var name = jQuery('input#name').val();
var adres = jQuery('input#adres').val();
var woonplaats = jQuery('input#woonplaats').val();
var email = jQuery('input#email').val();
var postcode = jQuery('input#postcode').val();
var bedrijf = jQuery('input#bedrijf').val();
var comments = jQuery('textarea#comments').val();
var tel = jQuery('input#tel2').val();
var hidden = jQuery('input#hidden2').val();
var over_select = jQuery('#over').serialize();
console.log(over_select);
jQuery.ajax({
type: 'post',
url: 'sendEmail.php',
data: 'hidden=' + hidden + '&over=' + over_select + '&post=' + postcode + '&plaats=' + woonplaats + '&adres=' + adres +'&name=' + name + '&email=' + email + '&tel=' + tel + '&bedrijf=' + bedrijf + '&comments=' + comments,
success: function(results) {
jQuery('#contact-form img.loaderIcon').fadeOut(1000);
jQuery('#response').html(results);
}
}); // end ajax
});
在邮件脚本中我放了&#34; over&#34;在一个php变量中,当我print_r()它时,它失去了它的第一个选择 你能帮帮我吗?
答案 0 :(得分:0)
尝试像这样发送您的数据
jQuery.ajax({
type: 'post',
url: 'sendEmail.php',
data : {'hidden': hidden, 'over': over_select, 'post': postcode, 'plaats': woonplaats, 'adres': adres,'name':name,'email': email, 'tel': tel, 'bedrijf':bedrijf, 'comments': comments},
success: function(results) {
jQuery('#contact-form img.loaderIcon').fadeOut(1000);
jQuery('#response').html(results);
}
}); // end ajax
然后在php部分使用
url_decode($_POST['over_select']);
答案 1 :(得分:0)
如果在多重选择上运行.serialize(),它将返回如下内容:
在[] = VAL1&安培;在[] = VAL2
您的数据字符串将变为:
在以上[] = = VAL1&安培;在[] = VAL2
这可能是你的问题。尝试删除数据字符串中的“over =”。