2016-03-16 4 views
1

Je développe un composant joomla et j'utilise AJAX à mon avis pour aller chercher le contenu de la table de base de données en envoyant une requête au contrôleur puis en créant un objet de données du modèle i appelé une fonction dans mon modèle qui retourne à son tour un objet JSON.
Maintenant, mon problème est d'afficher le contenu de cet objet dans une table html via jQuery.Comment afficher un objet php en utilisant jquery

Voici mon code:

jQuery("#papertitle").change(function(){ 
      console.log('eneterd jquery function'); 
      var title =jQuery('#papertitle').val(); 

      jQuery.ajax({ 
      type: 'GET', 
      url: "http://localhost/joomladev/index.php?option=com_journals&task=payments&format=raw&title="+title, 
      data: {title : title}, 
      success: function(data){ 
       console.log('data',data); 
       jQuery('#data-table').html(data); 
      } 
     }); 

    }); 

où la table de données est ma div. Et il montre objet JSON en sortie comme ceci:

array (size=1) 
    0 => 
    object(stdClass)[165] 
     public 'paperid' => string '4' (length=1) 
     public 'journalid' => string '7' (length=1) 
     public 'papertitle' => string 'Big Data' (length=8) 
     public 'classification' => string 'computer science' (length=16) 
     public 'status' => string 'complete' (length=8) 
     public 'comments' => string 'none' (length=4) 

Mais je veux les détails de l'objet à afficher sous forme d'une table. Toutes les suggestions sur comment puis-je le faire avec jQuery !!

Répondre

2

Je voudrais coder l'objet en tant que JSON dans votre contrôleur (http://localhost/joomladev/index.php) et retourner ce JSON.

Ensuite, vous pouvez analyser ce json en utilisant javascript. Actuellement, vous obtenez le vidage d'objet php qui ne peut/ne doit pas être analysé dans JS et créer/remplir une table.

+0

Il worked..thanks !! :) –

0

Essayez ceci dans votre fonction ajax succès

success: function(data){ 
    jQuery.each(data,function(key,row){ 
     jQuery('#data-table').append('<tr>'); 
     jQuery.each(row,function(key,column){ 
      jQuery('#data-table').append('<td>'+column+'</td>'); 
     }); 
     jQuery('#data-table').append('</tr>'); 
    }); 
}