Bonjour tout le monde,

j'essaie d'utiliser DataTables dont je viens de découvrir l’existence il y a quelques jours ,pour bénéficier des différents tries que ce plug-in offre.

j'ai cherché comment faire pour l'intégrer dans symfony2 ,et je suis tombé sur ça https://gist.github.com/Slauta/3175282 qui permet de faire marcher dataTables sous symfony2.j'ai essayé d'adapter le code à mon cas, mais j'arrive pas à le faire marcher surtout que je connais rien en Ajax et encore moins en JS.

voici les modifications que j'ai effectué:

sur le repository que j'avais déjà pour mon entité,j'ai collé le code trouvé sur internet et modifié ces deux lignes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
namespace Grc\GtpBundle\Entity;
 
 
/* DB table to use */
    $tableObjectName = 'GrcGtpBundle:Imputation';
//...
 
    ->createQuery('SELECT COUNT(a) FROM GrcGtpBundle:Imputation a')

sur AjaxController :

j'ai pas su quoi mettre dans l'annotation et je l'ai gardé telle qu'elle est

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
/**
* @Route("/ajax")
*/
class AjaxController extends Controller

j'ai modifié celle qui suit à l'intérieur de la classe:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
class AjaxController extends Controller
{
 
/**
* @Route("/gtp/listeImp", name="LIST_IMP")
* @Template()
*/

les colonnes aussi ,ainsi que le chemin du repository:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$columns = array( 'famille', 'site', 'nI', 'cA'  ,'numCmdMarche', 'annotation', 'type','dateOuverture', 'dateFermeture' );
$get['columns'] = &$columns;
 
$em = $this->getDoctrine()->getEntityManager();
$rResult = $em->getRepository('GrcGtpBundle:Imputation')->ajaxTable($get, true)->getArrayResult();
sur mon routing.yml j'ai modifié le contrôleur
LIST_IMP:
    path:    /gtp/listeImp
    defaults: { _controller: GrcGtpBundle:Ajax:impsList }
actuellement quand j'actualise la page j'ai cette erreur,qui est claire mais je sais pas comment la corriger ni où déclaer le "sEcho"

Notice: Undefined index: sEcho in C:\wamp\www\Symfony\src\Grc\GtpBundle\Controller\AjaxController.php line 43
sur le layout principale j'ai les inclusions suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<link rel="stylesheet" href="{{ asset('css/bootstrap.css') }}" type="text/css" />
 <link href="{{ asset('css/tuto.css') }}" rel="stylesheet">   
 <link rel="stylesheet" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
 <script src="//code.jquery.com/jquery-1.10.2.js"></script>
 <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
 <script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
 <script type="text/javascript" src="{{ asset('js/bootstrap.js') }}"></script>
<script src="{{ asset('js/__jquery.tablesorter/jquery.tablesorter.js') }}" ></script>
<script src="{{ asset('js/DataTables-1.10.0/media/css/jquery.dataTables.css') }}" ></script>
<script src="{{ asset('js/DataTables-1.10.0/media/js/jquery.dataTables.js') }}" ></script>
et ce bout de code js:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$(document).ready(function(){
    $('#myTable').dataTable();
});
Je vous remercie d'avance pour votre aide!