Quantcast
Channel: Grafikart | Derniers Sujets du forum
Viewing all articles
Browse latest Browse all 1542

Garder une session Symfony

$
0
0

Bonjour les ami(e)s,
J'ai un gro petit soucis, je m'explique:

j'ai un tableau avec DataTable de jquery, les données qui y sont ont des sous categories, pour les charger sur la même table bah je detruit les données qui y sont et je recharge juste le contenue de ma table.La recherche marche a la page de demarrage mais après avoir changer le contenue la recherche ne marche pas et si je regarche la page bah elle reviens a la page initiale au lieu de garder les donnée qui y sont deja.

Mon script:

    // ===========================
    // Init datatable
    // ===========================
    publics.bindInitDatatable = function (id = null, type = null) {
        // $.fn.dataTable.ext.legacy.ajax = true;
        var $this = $('#antibiotic_datatable');
        if (null != id || (null != id && null != type)) {
            $this.DataTable().clear().destroy();
        }

        var aoColumns = [{"bSortable": false, "bVisible": false}, {"bSortable": true}, {"bSortable": true}, {"bSortable": true}, {"bSortable": false}];
        var sAjaxSource = id == null
            ?
            Routing.generate('antibiotic_ajaxGetListRefdata')
            :
            null == type
            ?
            Routing.generate('antibiotic_ajaxGetListRefdata', {'id' : id})
           :
           Routing.generate('antibiotic_ajaxGetListRefdata', {'id' : id, 'type': type})
           ;

        $this.DataTable(
            {
                "pageLength": 10,
                "aoColumns": aoColumns,
                "order": [[ 0, "desc" ]],
                "bProcessing": true,
                "bServerSide": true,
                "searching": true,
                "sAjaxSource": sAjaxSource,
                "paging": true,
                "oLanguage": {
                    "sProcessing": "traitement...",
                    "oPaginate": {
                        "sPrevious": "Précédente",
                        "sNext": "Suivante",
                    },
                    "sSearch": "Filtrer: ",
                    "sLengthMenu": "Afficher _MENU_ enregistrements par page",
                    "sEmptyTable": "Aucune Hierarchie d'Antibiotique trouver!",
                    "sInfo": "Enregistrement(s) de _START_ à _END_ sur _TOTAL_"
                },
                "drawCallback": function(settings) {
                    if (null != id) {
                        $('.antibiotic_return').show();
                        $('.antibiotic_return').attr('data-id', id);

                        if (null != type) {
                            $('.antibiotic_return').attr('data-type', type);
                            $('.antibiotic_return').attr('data-parent', $('.antibiotic_return').data('parent'));
                        }
                    }
                }
            });
    };

    publics.show = function () {
        $('body').on('click', '.subcategory', function (event) {
            event.preventDefault();
            var id = $(this).data('id');
            var type = $(this).data('type');

            if  (null != type) {
                $('.antibiotic_return').attr('data-parent', id);
            }

            publics.bindInitData $this.DataTable().clear().destroy();table(id, type);
        });
    };

    publics.showParent = function () {
        $('body').on('click', '.antibiotic_return', function (event) {
            event.preventDefault();
            var id = $(this).data('id');
            var type = $(this).data('type');

            if (0 != id && 0 == type ) {
                privates.return(id);
                $('.antibiotic_return').hide();
            }
            else if (0 != id && null != type) {
                id = $(this).data('parent');
                $('.antibiotic_return').attr('data-parent',);
                $('.antibiotic_return').attr('data-type', id);
                $('.antibiotic_return').attr('data-id');
                privates.return(id, type);
                $('.antibiotic_return').hide();
            }
        });
    };

    privates.return = function (id = null, type = null) {
        var $this = $('#antibiotic_datatable');
        $this.DataTable().clear().destroy();

        if (null != id && null == type) {
            publics.bindInitDatatable();
        }
        else if (null != id && null != ty


pe) {
            publics.bindInitDatatable(id);
        }
    };

Mon Controller :

 /**
     * @Route("/ajaxGetListRefdata", options={"expose"=true}, name="antibiotic_ajaxGetListRefdata", methods="GET")
     *
     * @param Request $request
     * @param array   $sortings
     * @param array   $options
     *
     * @return Response
     */
    public function ajaxGetListRefdataAction(Request $request, array $sortings = [], array $options = []): Response
    {
        $sortings = $this->getSortings(
            $request,
            [
                'object.createdAt',
                'object.label',
                'object.type',
                'object.enabled',
            ]
        );

        if ($request->query->has('id')) {
            $options['id'] = $request->query->get('id');
        }
        if ($request->query->has('type')) {
            $options['type'] = $request->query->get('type');
        }

        return parent::ajaxGetListRefdataAction($request, $sortings, $options);
    }

Et voici le repository ou se trouve les requetes:

/**
     * @param array $options
     *
     * @return QueryBuilder|mixed
     */
    public function createQueryBuilderFindDataReference(array $options = [])
    {
        $queryBuilder = $this->createQueryBuilder('object')
                                ->andWhere('object.type = :grandParent');
        $params = [ 'grandParent' => AntibioticHierarchy::TYPE_CLASS ];

        if (array_key_exists('search', $options)) {
            $search = '%' . mb_strtolower($options['search']) . '%';
            $queryBuilder->andWhere(
                'LOWER(object.label) LIKE :search
                 OR LOWER(object.type) LIKE :search
                 '
            );

            $params['search'] = $search;
        }

        if (array_key_exists('id', $options)) {
            $queryBuilder->innerJoin('object.category', 'category')
                         ->andWhere(' category.id = :category_id');
            $params['category_id'] = $options['id'];
            $params['grandParent'] = AntibioticHierarchy::TYPE_SUBCLASS;

        }
        if (array_key_exists('type', $options) && "" !== $options['type']) {
            $params['grandParent'] = AntibioticHierarchy::TYPE_ANTIBIOTIC;
        }

        $queryBuilder->setParameters($params);

        return $queryBuilder;
    }

Si quelqu'un pouvais m'aider se serai vraiment sympa car ça fait des heures que je bloque.
Merci


Viewing all articles
Browse latest Browse all 1542

Trending Articles