2012-10-04 76 views
2

我有一個窗體,用戶可以從多選擇框(A)中選擇一個項目。如果該項目未列出,用戶可以從另一個輸入文本框(B)添加它。在(B)中輸入的值將執行ajax調用,將該項目保存到數據庫。保存項目後,創建一個json對象,然後需要用更新的列表填充(A)。我擁有所有這些選項。如果保存過程通過或失敗,我現在需要包括。如果過程通過,那麼我需要包含這些選項,但如果失敗了,我只需要失敗的狀態。以下是我想出了:jQuery/JavaScript循環JSON數據結果

{ 
    "process": [{ 
     "status":"pass" , 
     "message":"The Contributors list has been refreshed to contain the entry you just saved." } 
    ], 
    "newoptions": [ 
     {"optionValue":"Item 1" , "optionDisplay":"Item 1"}, 
     {"optionValue":"Item 2" , "optionDisplay":"Item 2" }, 
     {"optionValue":"Item 3" , "optionDisplay":"Item 3" } 
    ]  
} 

,這是我用我的阿賈克斯例行什麼:

success: function(j){ 
    if (j.process.status == 'pass'){ 
     var options = ''; 
     for (var i = 0; i < j.newoptions.length; i++) 
      { 
       options += '<option value="' + j.newoptions[i].optionValue + '">' + j.newoptions[i].optionDisplay + '</option>'; 
      } 
     $('#misc_userID').val(''); // reset value back to null 
     $("#misc_userID").effect("transfer", { to: $("#group_misc_available") }, 500); //visual showing item added to select 
     $('#group_misc_available').html(options); 
    } 
    else if (j.status == 'fail'){ 
     alert(j.process.message); 
    } 
} 

我沒有得到一個錯誤,但它不處理Ĵ .process.status要麼所以選擇列表(A)沒有被刷新..

回答

3

你的processarray所以需要index

if (j.process.status == 'pass'){ 
01進行訪問

if (j.process[0].status == 'pass'){ 
+0

我以爲它需要[]但不知道該把它放在哪裏。謝謝。 – HPWD

3

您沒有正確訪問您的JSON數據。試試這個

if (j.process[0].status == 'pass'){ 
+0

+1尊敬的提及 - 另外一人剛剛以幾秒鐘的時間回答。 – HPWD