2010-06-28 6 views
0

Vous essayez de manipuler une table avec jQuery, et je n'arrive pas à le faire fonctionner correctement. Le vide fonctionne très bien, mais je ne peux pas ajouter de contenu sur la table après.jQuery Table manipulation

Des suggestions sur ce que je peux faire mal?

<table id="schedualtable"> 
    <tbody id="sortable"> 
     <tr><td></td></tr> 
    </tbody> 
</table> 

$('#schedualtable > tbody:last').empty().append($.get('incl/ajax_category.php?action=filtercat', {'cata': $('#filtercat').val()})); 

$('#sortable').empty().append($.get('incl/ajax_category.php?action=filtercat', {'cata': $('#filtercat').val()})); 

Répondre

3

Au lieu de $.get() vous devez utiliser .load(), comme ceci:

$('#sortable').load('incl/ajax_category.php?action=filtercat', 
        {'cata': $('#filtercat').val()}); 

$.get() ne renvoie pas les données, il est disponible dans sa méthode de rappel bien. .load() prend réellement le résultat et le met dans cet élément.

Pour la méthode $.get(), il avait ressembler à ceci:

$.get('incl/ajax_category.php?action=filtercat', {'cata': $('#filtercat').val()}, 
     function(data) { $('#sortable').html(data); }); 
0

Ne vous voulez utiliser .html() au lieu de .append() puisque vous mettez le contenu à l'intérieur et vous n'avez pas besoin de .empty() ainsi que?

+1

Dans ce cas, ce n'est pas le problème principal, ['$ .get()'] (http://api.jquery.com/jQuery.get/) renvoie un objet 'XmlHttpRequest', pas le résultat/chaîne réel (c'est une opération asynchrone), donc le contenu entrant dans les méthodes '.html()' ou '.append()' ne serait pas utile. –

+0

Essayé html d'abord. Désolé, n'a pas inclus dans le message. –