Resultats d'un code PHP affiché dans un module particulier.

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Resultats d'un code PHP affiché dans un module particulier.

    Bonjour (et désolé si je ne suis pas au bon endroit dans le forum pour poser ma question).

    J'ai développé un code PHP qui est appelé depuis un formulaire affiché dans un article.
    Ce code PHP affiche différentes choses (dont des données extraites d'une base SQL) et je souhaiterais que les résultats de ce code PHP soient affichés dans un module particulier de mon template.
    Par exemple, j'ai un module qui s'appelle "INFO" et qui se trouve sur le côté gauche du template (position Left).
    Selon ce que choisi l'utilisateur dans le formulaire, le code PHP va générer des infos sous forme de tableaux HTML.
    Que dois-je indiquer dans mon code PHP pour que tout le HTML généré par le code PHP soit affiché dans le module INFO ?
    Je ne sais pas si je me fais comprendre.
    Merci par avance pour vos suggestions
    Dernière édition par poudou99 à 30/05/2018, 00h22

  • #2
    Salut,

    Si j'ai bien compris ton projet, il faut que tu développe un module Joomla.
    Le code de traitement de tes info devra être dans ce module.

    Commentaire


    • #3
      Envoyé par fabrice4821 Voir le message
      Si j'ai bien compris ton projet, il faut que tu développe un module Joomla.
      Le code de traitement de tes info devra être dans ce module.
      Bonjour.
      Merci. Je comprends le principe du développement d'un module.
      Par contre, je ne vois pas trop comment après clic du bouton "Envoi" du formulaire (qui se trouve lui) dans un article du main, le code PHP appelé en Action du formulaire va pouvoir provoquer l'exécution du module en pour lancer l'affichage des résultats dans le bloc/position du module.
      En gros, quelle serait la séquence PHP/joomla à insérer dans le code PHP-Action-Formulaire pour déclencher l'exécution d'un module?


      Commentaire


      • #4
        Plusieurs solutions:

        Les 4 qui me viennent à l'esprit sont :
        • Utilisation des coolies.
        • Utilisation de "JInput::get"
        • Utilisation dune table en base de données
        • Utilisation d'ajax (peut être le plus simple et le plus propre)
        Le passage de données entre différents éléments est toujours problématique.

        Commentaire


        • #5
          Envoyé par fabrice4821 Voir le message
          Plusieurs solutions:

          Les 4 qui me viennent à l'esprit sont :
          • Utilisation des coolies.
          • Utilisation de "JInput::get"
          • Utilisation dune table en base de données
          • Utilisation d'ajax (peut être le plus simple et le plus propre)
          Le passage de données entre différents éléments est toujours problématique.
          Je ne sais pas sûr de tout comprendre votre réponse.

          Je vais tenter reformuler ma question:

          1/ L'utilisateur rempli le formulaire contenu dans un article qui se trouve en page centrale du site
          2/ il appuie sur "envoi", ce qui déclenche l'exécution du code "Get_Data.Php"
          3/ le code Get_Data.Php récupère les données du formulaire et déclenche l'exécution du module "mod_Display_Data" qui se trouve en position "LEFT" de mon site
          4/ le module "mod_Display_Data" récupère des infos de ma base de données (en fonction des infos du formulaires) et les affiche dans la fenêtre du module.

          ce que je ne vois pas quoi faire, c'est l'étape 3 : déclencher l'exécution du module "mod_Display_Data" qui se trouve en position "LEFT"
          Il doit y avoir un groupe d'instruction PHP/Joomla pour réaliser cela.

          Merci pour votre aide.

          Commentaire


          • #6
            Il faut prendre en compte qu'entre le "l'envoi" et l'affichage de tes informations dans ton module, il y a eu un rafraîchissement de la page.

            Ce qui donne :
            1/ L'utilisateur rempli le formulaire contenu dans un article qui se trouve en page centrale du site
            2/ il appuie sur "envoi", ce qui déclenche l'exécution du code "Get_Data.Php"
            3/ le code Get_Data.Php récupère les données du formulaire et met à jour ta base de donnée
            3bis / la page est réaffiché
            4/ le module "mod_Display_Data" récupère des infos de ta base de données (en fonction des infos du formulaires) et les affiche dans la fenêtre du module.

            Commentaire


            • #7
              Merci bien pour cette piste, je commence à comprendre l'idée.
              Je viens de faire un test et ça commence à prendre forme.
              Par contre, à la fin de l'étape 3/ , j'ai dû forcer le rafraichissement (pour passer en 3bis/) avec une instruction PHP : header("location: " . $Path ); (où $Path est la page du formulaire) sinon à la fin du code PHP Get_Data.Php je me retrouvais avec une page vide en Frontend de mon site.
              J'ai dû louper un truc pour terminer proprement mon code Get_Data.Php (je me fais vieux, à plus de 60 ans on commence à perdre des neurones nécessaires à la programmation).
              Dernière édition par poudou99 à 29/05/2018, 18h08

              Commentaire


              • #8
                Je pense que ton code ne fait pas appel au model MVC de Joomla.
                Sinon à la dernière ligne de ta fonction de traitement de l'info dans ton controleur, tu devrais avoir quelque chose comme :
                Code:
                $this->setRedirect(JRoute::_('index.php?option=com_xxxxxxx&view=yyyyyy', false));

                Commentaire


                • #9
                  Envoyé par fabrice4821 Voir le message
                  Je pense que ton code ne fait pas appel au model MVC de Joomla.
                  C'est exact, je ne l'ai pas vraiment pris en compte Je vais y remédier dans la version finale de mon projet.

                  Mais, globalement, ça marche bien maintenant . Mes données, résultantes du formulaires, s'affichent parfaitement dans le module sur le côté gauche.
                  Merci beaucoup pour vos suggestions et la continuité dans vos réponses (même si ma requête me semblait un peu complexe à énoncer).

                  Je vais passer la question en "Réglé".

                  PS: jamais déçu de Joomla depuis 2008 et jamais déçu de sa communauté depuis !

                  Commentaire


                  • #10
                    Pour résumer :

                    1/ J'ai développé un module personnel qui doit s'afficher en position LEFT de la page et seulement pour accès à un menu précis : celui du formulaire (dans tous les autres cas, ce module n'est pas affiché).
                    2/ Dans ce module, il y a un test d'une variable de session qui affiche un texte par défaut tant que le formulaire n'a pas été rempli et activé
                    3/ Lorsque le formulaire est rempli, après envoi, un code PHP est appelé pour préparer l'extraction des données de la base et positionner la variable de session pour que le module se prépare à afficher les résultats.
                    4/ la sortie du code PHP provoque le ré-affichage de la page et, donc, celle du module qui maintenant peut afficher tous les résultats dans la position du module.
                    5/ Si un nouvel appel au formulaire se produit, le module ré-affichera le texte par défaut en attente des infos du formulaires.

                    Merci fabrice4821

                    Commentaire

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X