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:
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
1 2 3 4
| /**
* @Route("/ajax")
*/
class AjaxController extends Controller |
j'ai modifié celle qui suit à l'intérieur de la classe:
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:
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:
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:
1 2 3
| $(document).ready(function(){
$('#myTable').dataTable();
}); |
Je vous remercie d'avance pour votre aide!
Partager