THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour la communauté,

L'url d'appel ajax dans le module vers le fichier qui se trouve au même niveau n'est pas appelée.

J'ai essayé en donnant le chemin complet à partir de la racine en vain.
L'url est appelée dans le répertoire /web
Au lieu de /local/modules/AvantagesClient/templates/assets/js/
/////////////////////////////////////////Extrait jQuery////////////////////////////////////////////////

            $('.benefits').on('click', '#customer-benefits', function(){
                $.ajax({
                    type: "POST",
                    dataType: 'text',
                    data: 'benefits=generate',
                    url: 'customerBenefits.php', //N'est pas appelée /local/modules/AvantagesClient/templates/assets/js/
                    success : function(benefits, textStatus){
                        $('.alert').html(benefits); //response
                        $(this).hide(); //button
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        $('.alert').html('Error');
                    }
                });

            });

Last edited by fredodefrance (23-05-2017 14:33:42)


C'est en faisant qu'on apprends.

Offline


Je viens de regarder par rapport au module tinymce.
Celui-ci est mis en cache dans le répertoire web.
$.ajax({
        url: "ajax_calls.php?action=sort

Je pense qu'il faudrait que je mette le fichier concerné en cache dans le répertoire web pour mon module.
Reste à trouver la méthode pour le faire.


C'est en faisant qu'on apprends.

Offline


Tu veux appeler un fichier PHP qui est dans /web ? Si oui, ce n'est pas une "bonne pratique" (c'est du vocabulaire, pas un jugement ;-) )

Thelia fonctionne avec des routes, qui invoquent des méthodes de contrôleurs. C'est pour ça que de base, il n'y a que les fichier index.php et index_dev.php dans /web.(TinyMCE a son fonctionnement propre, ce qui explique la nécessité de placer certains des composants dans /web).

Dans ton cas, je te conseille de déplacer ce qu'il y a dans ton fichier customerBenefits.php dans un contrôleur de ton module, et de créer une route qui pointe vers ce contrôleur.


OpenStudio Toulouse

Offline


Oui. Mais j'appelle ma route de quelle manière dans $ajax ?:

$.ajax({
        url: "ma.route.id",


C'est en faisant qu'on apprends.