2010-09-05 57 views
1
function addFav(id){ 
    $.ajax({ 
     url: "misc/favAdd.php", 
     type: "POST", 
     data: { mode: 'ajax', user: id}, 
     dataType: 'json', 
     success: function(data, status){ 
        if(typeof(data.error) != 'undefined') { 
         if(data.error != '') 
          alert(data.error); 
        } else { 
      $('a#fav') 
       .addClass('active') 
       .attr('title','[-] Remove as favorite') 
       .unbind('click') 
          .bind('click', function() { removeFav(id); }) 
      ; 
       jGrowlTheme('wallPop', 'mono', '[+] Favorit', 'Du har nu lagt till denna profil som favorit', 'images/addFavorit_hover2.png', 1000); 
     } 
     } 
    }); 
} 

我有這個,我希望提醒data.error,如果它得到任何錯誤響應,並且工作。但現在,如果我沒有任何data.error它不會運行addClass和東西多少後} else {?jquery:json data.error else

我做錯了什麼?

+0

看起來沒問題。你確定這是正確的迴應嗎?它不在數組中? – user113716 2010-09-05 16:24:09

+0

它不在數組中。請檢查更新的問題與PHP,也許如果有錯誤的地方 – Karem 2010-09-05 16:58:12

+0

@Karem - 我們已經在這個問題上回答了你2到3次現在......你的JSON **必須是有效的**,請,*請*學習從你的問題。 – 2010-09-05 17:09:53

回答

0

如果您使用它而不是?

function addFav(id) { 
    $.ajax({ 
     url: "misc/favAdd.php", 
     type: "POST", 
     data: { 
      mode: 'ajax', 
      user: id 
     }, 
     dataType: 'json', 
     success: function(data, status) { 
      if (data.error !== undefined && data.error != '') { 
       alert(data.error); 
      } else { 
       $('a#fav') 
       .addClass('active') 
       .attr('title', '[-] Remove as favorite') 
       .unbind('click') 
       .bind('click', 
       function() { 
        removeFav(id); 
       }); 
       jGrowlTheme('wallPop', 'mono', '[+] Favorit', 'Du har nu lagt till denna profil som favorit', 'images/addFavorit_hover2.png', 1000); 
      } 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
      alert(errorThrown); 
     } 
    }); 
} 

我懷疑發生了什麼事是你有故障得到任何(有效)的數據,因爲你還沒有定義的錯誤處理程序,響應纔剛剛掉在地上。您對錯誤的測試依賴於它們的數據開始,因此只有在返回包含對象中的「錯誤」屬性的有效數據時纔會觸發。