Ajax表单和复选框数组

时间:2012-07-02 10:34:54

标签: php jquery ajax forms checkbox

在我的ajax表单中,我有一些复选框和一个电子邮件地址文本框。表单工作,但我不能在同一个变量中发送复选框数组和电子邮件地址。对不起,我的英语不好。这是jquery代码:

$(document).ready(function(){

$('#submit').click(function () {

var valore = { 'how_hear[]' : []}; 

$("input:checkbox:checked").each(function() {
  valore['how_hear[]'].push($(this).val());
}); // Checkboxes value

var name = $('input:text');

//发送到php的数据组织。我认为问题出在这里,但我无法解决!!!

var data = 'name=' + name.val() + '&check=' valori;

$.ajax({
                type:'POST',
                url:'myurl.php',
                data:  data, // If i send only the variable "name" or only the variable "valore", it works fine!
                cache: false,
                success:function (data) {
                    $('form').append('GIUSTO!!!!');
                }
        });

    return false;
    });

});

有什么建议吗?谢谢你!

2 个答案:

答案 0 :(得分:0)

您可以使用serializeArray()serialize()方法。

答案 1 :(得分:0)

将数据发送到服务器

http://api.jquery.com/jQuery.ajax/

默认情况下,使用GET HTTP方法发送Ajax请求。如果需要POST方法,可以通过为type选项设置值来指定方法。此选项会影响数据选项的内容如何发送到服务器。根据W3C XMLHTTPRequest标准,POST数据将始终使用UTF-8字符集传输到服务器。

The data option can contain either a query string of the form key1=value1&key2=value2, or a map of the form {key1: 'value1', key2: 'value2'} 的。如果使用后一种形式,则在发送之前使用jQuery.param()将数据转换为查询字符串。通过将processData设置为false可以避免此处理。如果您希望将XML对象发送到服务器,则可能不希望进行处理;在这种情况下,将contentType选项从application / x-www-form-urlencoded更改为更合适的MIME类型。