2010-09-05 15 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); 
     } 
    }); 
} 

我怀疑发生了什么事是你有故障得到任何(有效)的数据,因为你还没有定义的错误处理程序,响应才刚刚掉在地上。您对错误的测试依赖于它们的数据开始,因此只有在返回包含对象中的“错误”属性的有效数据时才会触发。