2012-07-02 46 views
1

在我的ajax表單中,我有一些複選框和一個用於電子郵件地址的文本框。表單工作,但我不能在同一個變量中發送複選框數組和電子郵件地址。對不起,我的英語不好。這裏是jQuery代碼:Ajax表單和複選框數組

$(文件)。就緒(函數(){

$('#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; 
    }); 

}); 

任何建議?感謝ü!

+1

在複選框元素上使用'$(yourForm).serialize()'並添加屬性'name =「how_hear []」'以創建發送到服務器的'data'變量。 [鏈接到.serialize()官方文檔](http://api.jquery.com/serialize/) – Elorfin

回答

0

將數據發送到服務器

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

默認情況下,Ajax請求使用HTTP GET方法發送。如果需要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類型。