2013-07-09 62 views
1

我試圖建立一組數據,然後將使用後的PHP是阿賈克斯 - 下面是我的代碼:jQuery的建築陣列不工作

$('#mainBodySaveSubmitButtonProfilePhotoIMG').click(function() { 
    var profilePhotoArray = []; 
    $('.mainUnapprovedProfilePhotoWrapperDIV').each(function() { 
     var action = ''; 
     alert(this.id); 

     if($('.mainUnapprovedProfilePhotoAttractiveIMG', this).is(':visible')) { 
      alert('attractive...'); 
      action = 'attractive'; 
     } 
     else if($('.mainUnapprovedProfilePhotoDeleteIMG', this).is(':visible')) { 
      alert('delete...'); 
      action = 'delete'; 
     }else{ 
      alert('normal...'); 
      action = 'normal'; 
     } 
     profilePhotoArray[this.id+'_'+this.id] = action; 
    }); 

    alert(profilePhotoArray.length); 

    for (i=0;i<profilePhotoArray.length;i++) { 
     console.log("Key is "+i+" and Value is "+array[i]); 
    } 


    $.post('scripts/ajax/ajax_approval_functions.php', { 
    'approvalProfilePhotos': '1', 
    'approvalProfilePhotosData': profilePhotoArray}, 
    function(data) { 
     alert(data); 
    }); 
}); 

的如果,否則,如果,其他部分我可以看到警報,因此工作正常。

當我嘗試提醒數組長度'profilePhotoArray'它說0,所以我沒有正確填充數組。我需要使用.push()嗎?我認爲這種格式是好的?

另外我需要做任何事情之前發送到PHP通過ajax數組?

三江源

**編輯 - 我添加 「profilePhotoArray [this.id + '_' + this.id] =行動;」 this.id兩次只是爲了證明這個詞,因爲我會傳遞這樣的第二個變量......我最好使用JSON來做這件事嗎?

+0

數組應該使用整數進行索引,但是您使用的是字符串(this.id +'_'+ this.id')。 –

+0

我以爲我可以使用這個作爲一個關聯數組...可能我想到很像PHP ...我應該使用索引並將該值作爲JSON字符串來代替? – Adam

+0

下面的DevZer0有正確的解釋。如果您只是將'profilePhotoArray'更改爲對象字面值('var profilePhotos = {};'),則應該全部設置。 –

回答

3

JavaScript數組使用數字索引,因此您的存儲失敗。使用JavaScript對象來存儲基於字符串的鍵。

var lang=new Object(); 
lang["foo"]="Foo"; 
lang["bar"]="Bar";