2012-08-22 57 views
0

我需要發送數據一個是數組另一個是單個數據。

var img=$('#image').val(); // image name 

var formdatas=($(this).serialize()); // data from form, including to many data 

data:formdatas, //legal 
data:{f:formdatas,r:img}, //legal but formdatas is an array ı cant send it like this 

但是我需要這樣的東西。

data:{formdatas,r:img}, // this is not working 

這是我的完整代碼,我只需要發送2個不同的數據。

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

    var resim=$('#resim').val(); 

    var formverileri=($(this).serialize()); 

    $.ajax({ 
       type:"POST",   
       url: "lastikekle.php", 
       data:{formverileri,r:resim}, ???? 
       success: function(result){ 

       $("#dialog").dialog(); 
       $("#dialog").html(result); 
             } 
     }); 


    }); 
+0

'連載()'返回一個字符串,而不是一個數組。 – Utkanos

回答

2

嘗試:(.serialize返回一個字符串)

data: formdatas+'&r='+encodeURIComponent(img) 

編輯: 或者你可以使用serializeArray

$('#lastikekle').submit(function() { 
    var resim = $('#resim').val(); 
    var formverileri = $(this).serializeArray(); 
    formverileri.r = resim; 
    $.ajax({ 
     type: "POST", 
     url: "lastikekle.php", 
     data: formverileri, 
     success : function (result) { 
      $("#dialog").dialog(); 
      $("#dialog").html(result); 
     } 
    }); 
}); 
+0

我曾經解決過這樣的問題。但我注意到像éàè這樣的字符編碼問題等等。但是,如果您將'非字符串'值傳遞給ajax'data',則不會發生編碼問題。在不使用這些字符的語言中可能不那麼重要,但它確實使我將字符串用作數據。 – Flater

+0

@Flater檢查我的編輯。 – xdazz

+0

完美的解決方案:)我不會責怪人們不知道編碼問題,因爲大多數語言並不真正依賴重音字符。有時候我真的很爲法國/斯堪的納維亞的程序員感到難過,編碼問題是非常煩人的。 – Flater