2011-10-08 4 views
0

J'ai un problème avec un code javasciprt dans une réponse jSON.Code JavaScript dans la réponse jSON (jQuery)

La réponse est:

$return['msg'] = '<a onClick = "delComment(comment_'.$number.', '.$number.', '.$comment_id.')" href="javascript:void()" style="float: right; padding-right: 5px;">'.SayLang::json('COMMENT_DELETE').'</a>'; 

fonction delComment:

function delComment(div_id, comment_number, comment_id) { 
$(document).ready(function() { 
    if (logged_in == null) var logged_in = false; 
    if (admined == null) var admined = false; 
    if (confirm('Biztosan törölni szeretnéd a hozzászólást?')) { 
     $('#ajax-json-response').fadeOut('fast').html(''); 
     $('#ajax-loading-content').html('<img src="images/ajax-loader.gif" />').fadeIn('slow'); 
     $.ajax({ 
      type: 'POST', 
      url: 'json.php', 
      dataType: 'json', 
      cache: false, 
      timeout: 100000, 
      data: { a: 'comment_delete', div_id: div_id, comment_number: comment_number, comment_id: comment_id }, 
      success: function(data) { 
       $('#ajax-loading-content').fadeOut(1).html(''); 
       $('#ajax-json-response').html(data.message).fadeIn('slow'); 
       if (!data.error) { 
        $('input#number').val(data.newnumber); 
        $('#'+div_id).toggle('slow'); 
        if (data.newnumber == 0) { 
         $('#no-comment').fadeIn('slow'); 
        } 
       } 
      }, 
      error: function(jqXHR, textStatus, errorThrown) { 
       $('#ajax-loading-content').fadeOut(1).html(''); 
       //$('#ajax-json-response').html('Probléma történt! Kérlek próbáld újra később! (HTTP Error: '+errorThrown+' | Error Message: '+textStatus+')').fadeIn('slow'); 
       $('#ajax-json-response').html('Probléma történt! Kérlek próbáld újra később!').fadeIn('slow'); 
      } 
     }); 
    } 
}); 

}

Après avoir cliqué sur le lien, Crashes Chrome et Mozilla ne fait rien.

Quel est le problème, ou que dois-je faire?

Merci à l'avance: Marcell

+0

Je ne sais pas pourquoi vous avez '$ (document) .ready()' dans une fonction qui sera appelée 'onclick'. Le point de '$ (document) .ready()' est de déterminer si le DOM est encore chargé, et pour qu'un lien soit cliqué - il doit l'être. –

+1

La réponse n'est pas valide json jusqu'à présent. Avez-vous utilisé json_encode() pour la sortie (en supposant que php)? –

+0

Pouvez-vous nous donner les messages d'erreur de la console? Ctrl + Maj + J dans Chrome –

Répondre

0

Votre variable PHP est $return['msg'] mais vous appelez data.message en javascript pourrait-il que ce soit? Aussi, vous enveloppez votre fonction interne avec $(document).ready(function() { ce qui est totalement inutile, essayez de supprimer cela.

+0

C'est "message" dans mon PHP, j'ai seulement copié une mauvaise rangée, et J'ai supprimé la ligne DOM ready, mais ce n'est toujours pas OK. La console affiche seulement "error" – Skylineman

+0

firebug dit: "comment_3 n'est pas défini" ou "comment_1", etc ... – Skylineman

0

Ok, j'ai trouvé le problème.

Il était invalide:

$return['message'] = '<a onClick = "delComment(-->comment_'.$number.'<--'; 

Merci pour l'aide!