IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Modal ou popup symfony [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de JackSteller
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut Modal ou popup symfony
    Hello a tous,

    J'ai un questionnaire que j'ai crée (manger.html.twig) et sur ma page profil.html.twig j'ai mon lien pour ce questionnaire ce que je veux faire c'est au lieu d’être envoyer sur cette page je veut afficher le questionnaire en popup je sais le faire sur le même fichier twig pas de soucis mais quand il s'agit d'un autre fichier je n'y arrive pas .

    j'ai pu lire qu'il fallait utiliser ajax mais pas très clair pour moi de la façon de faire.

    Merci a vous de m'aider

    ici mon twig


    Code Twig : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <div class="modal fade" id="myModal" role="dialog">
        <div class="modal-dialog">
     
            <!-- Modal content-->
            <div class="modal-content">
     
                <div class="modal-body">
                    {{ render(controller('AppBundle\\Controller\\SiteController::mangerAction'))}}
     
                </div>
                <div class="modal-footer"></div>
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
     
    </div>

  2. #2
    Membre expérimenté
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Par défaut
    Salut,

    tu dois faire un appel à un controller qui te renverra le contenu à mettre dans ta page

    Code Twig : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <script>
        $(document).ready(function(){
            $("#tonBouton").on("click",function(e){
               $.ajax({
            url : path('AppBundle\\Controller\\SiteController::mangerAction'),
            data: {"donnees":[]},//tes données à envoyer
            type : POST,
            success : function(data){
                $('.modal-body').html(data); // Utiliser un id serait plus précis        
    }
            });
            return false;
           });
     });
    </script>

    et dans ton controller tu dois avoir à la fin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $donnees = $this->getRequest()->get("donnees");
    return $this->render('manger.html.twig', $donnees);

  3. #3
    Membre averti Avatar de JackSteller
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut
    Bonjour tout d'abord merci..

    Donc plus besoin de mettre render controller(appbundle\controller\...etc..) dans mon twig c'est bien ça? l'action du clique feras appel a cette page qui me l'affichera dans ma div modal-body?

    par contre chose que je n'ai pas dite mais le questionnaire que j'ai crée dans manger fait déjà un appel en ajax et enregistre déjà les réponses en bdd.
    moi je veu juste qu'il s’affiche sur ma page profil.html.twig au clique sur le lien du questionnaire.


    Alors pour être plus clair j'ai ma vue manger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    /**
         * @Route("/manger", name="site_manger")
         */
        public function mangerAction()
        {
            $userSlpRepo = $this->getDoctrine()->getRepository(UserSlp::class);
            $surveyProgressRepo = $this->getDoctrine()->getRepository(SurveyProgress::class);
            $surveyRepo = $this->getDoctrine()->getRepository(Survey::class);
            $questionMangerRepo = $this->getDoctrine()->getRepository(Manger::class);
     
            $userSLP=$userSlpRepo->findAll();
            $surveyprogreSLP=$surveyProgressRepo->findAll();
            $surveySLP=$surveyRepo->findAll();
            $manger = $questionMangerRepo->findAll();
     
            //$données=this->getRequest....etc
     
     
     
            return $this->render('site/site_manger.html.twig', array(
                'mangers' => $manger,
                'userSLP' => $userSLP,
                'surveySLP' => $surveySLP,
                'surveyprogreSLP' => $surveyprogreSLP,
     
            //  $données-------<<----ICI---??
          )); 
     
        }




    Mon twig de nouveau
    Code Twig : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <button type="button" class="btn btn-info btn-lg" href="{{ path('site_manger')}}" data-toggle="modal"
        data-target="#myModal">U ARE WHAT YOU EAT
        !</button>
     
    <!-- Modal -->
    <div class="modal fade" id="myModal" role="dialog">
        <div class="modal-dialog">
     
            <!-- Modal content-->
            <div class="modal-content">
     
                <div class="modal-body">
                    <!---->
     
                </div>
                <div class="modal-footer"></div>
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
     
    </div>

  4. #4
    Membre expérimenté
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Par défaut
    Tu as deux solutions.

    1- Soit tu as besoin d une valeur qui peut être changée dans ta page profil (EX: Etes-vous a jeun ? OUI/NON ) qui influence le questionnaire que tu va afficher.

    2- Soit le questionnaire est le même pour tout le monde.


    Dans le cas 1,
    tu fait un appel ajax ou tu passe la réponse à la question "Etes-vous a jeun ?"
    tu récupère le contenu du questionnaire et tu l ajoute au DOM dans ton bloc modal
    tu ajoutes un événement sur la soumission du formulaire pour qu'il appel l ajax d enregistrement
    et tu affiche ton bloc modal

    Dans le cas 2,
    Tu fait un include de ton questionnaire dans ta page profil
    lors de l appuie sur le bouton tu affiche juste la modal qui était cachée.

    Code Twig : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     <button type="button" class="btn btn-info btn-lg" data-toggle="modal"
        data-target="#myModal" >U ARE WHAT YOU EAT
        !</button>
     
    <!-- Modal -->
    <div class="modal fade" id="myModal" role="dialog">
        <div class="modal-dialog">
     
            <!-- Modal content-->
            <div class="modal-content">
     
                <div class="modal-body">
                    <!---->
                    {% include 'site/site_manger.html' %}
                </div>
                <div class="modal-footer"></div>
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
     
    </div>

    avec un truc comme ça tu dois être bon,
    il faut juste ne pas oublier de passer les variables : 'mangers', 'userSLP', 'surveySLP', 'surveyprogreSLP' lors du rendu de profil.html.twig

  5. #5
    Membre averti Avatar de JackSteller
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut
    hello cela fonctionne seulement aurais-tu une solution pour les conflits d'affichage?

    j'ai par exemple la couleur du texte de la vue profil.html.twig (bleu) qui s’implémente sur celle de manger.html.twig..si ce n'ai pas trop demandé

  6. #6
    Membre averti Avatar de JackSteller
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut
    du coup j'ai supprimer les stylesheet de la vue manger et tout mis dans la base.html.twig pour éviter les doublons et conflit c'est ok merci bonne vie a vous tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modal popup avec symfony
    Par dgmick dans le forum Symfony
    Réponses: 5
    Dernier message: 22/03/2018, 20h17
  2. [2.x] Ajouter un formulaire twig dans une fenêtre modale ou popup
    Par frieden dans le forum Symfony
    Réponses: 20
    Dernier message: 08/06/2016, 13h42
  3. [2.x] ouvrir popup symfony
    Par angelmn dans le forum Symfony
    Réponses: 4
    Dernier message: 12/02/2015, 13h58
  4. Réponses: 5
    Dernier message: 07/09/2012, 18h19
  5. fênetre modal ou popup normal
    Par ozzmax dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/05/2007, 18h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo