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 :

Données Json -> controller Symfony


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut Données Json -> controller Symfony
    Bonsoir,

    Actuellement je cherche à manipuler des données issues d'une requête Ajax, visant une API(TMDB). Coté front je récupère donc sans problème mes data en format Json celà depuis une recherche sans intégrer un formulaire symfony, et donc simplement un champ input dans la vue twig. J'ai donc bien une route dédié à cette fonction recherche mais je ne sais comment récupérer ces données Json de la recherche pour les manipuler dans le controller.. l'idée au finale étant de récupérer les propriétés d'un film pour ensuite les stocké en bdd.

    Si des personnes pouvant m'éclairer..
    Merci d'avance.



    Bonne soirée.
    Bon WE.

  2. #2
    Membre confirmé Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Par défaut
    Salut,

    Si je comprend bien, tu as une fonction javascript qui récupère des données depuis un input. Tu souhaites envoyer ces données grâce à une requête Ajax vers ton contrôleur Symfony et tu cherches comment les récupérer depuis ce contrôleur pour les manipuler ?

    Si tu passes ces données via la méthode "POST", il te faut utiliser l'objet Reques: Symfony request object

    En espérant avoir correctement compris pour t'avoir orienté comme il faut!

    Cordialement,
    Skunka.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut
    Salut,
    Merci de ta réponse.

    Alors oui, cependant est-ce que je dois faire une autre requete dans mon script JS indiquant la route adéquate.
    Dans ma vue Twig pour le moment je n'ai qu'un input relier a mon script js. Aucun formulaire Symfony basé sur entité n'a été créer pour la vue Twig.


    Cordialement.

  4. #4
    Membre confirmé Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Par défaut
    Salut,

    Pas besoin d'une requête supplémentaire mais juste une petite astuce que j'utilise sur mes projets. Comme tu n'as pas mis ton code, je vais essayer d'être clair mais dans le cas où tu n'as pas tout compris, n'hésite pas à mettre ton code dans la discussion

    J'imagine que tu as un bouton sur lequel tu as ajouté un eventListener pour déclencher ton script js. Tu peux rajouter à ce bouton un attribut que je nomme "path" et lui mettre comme valeur ta route grâce à Twig:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <button path="{{ path('nom_route') }}">Valider</button>

    Ainsi, tu n'as plus qu'à récupérer cet attribut dans ton script js afin de définir le chemin de ta requête AJAX.

    Cordialement,
    Skunka.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut
    Ca sera évidemment plus clair en partageant mon code

    Script JS
    Code JavaScript : 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
    30
    31
    32
    33
     
     
    /**
     * Appel API Recherche Films [GET Search]
     * @function getMovies
     */
    function getMovies() {
        xhr.onreadystatechange = function () {
            if (this.readyState === 4 && this.status === 200) {
                //* Si la requete est terminée et que la réponse est prête||Status OK
                var data = JSON.parse(this.response); // * Données JSON traitées
                console.log(data);
                for (i = 0; i < data.results.length; i++) {
                    Aff_cardMovies(data);
                    // valid_msg(success);
                }
            } else if (this.readyState === 4 && this.status === 404) {
                alert("Erreur 404 :/");
            }
        };
        xhr.open(
            "GET",
         baseURL +
            "search/movie?api_key=" +
            key +
            "&language=" +
            lang +
            "&query=" +
            saisie_movie.value,
            true
        ); //* Initialisation de l'objet avant de l'envoyé | Asynchrone
        xhr.send(); //Envoi de la requête vers serveur
    }

    Controller.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      /**
         * @Route("/movie/search", name="movie_search")
         */
        public function search()
        {
     
     
            return $this->render('movie/search.html.twig', [
     
            ]);
        }

    Vue 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    {% extends 'base.html.twig' %}
    {% block title %}Search{% endblock %}
    {% block stylesheets %}
        {{ encore_entry_link_tags('app') }}
        {{ encore_entry_link_tags('search') }}
    {% endblock %}
     
    {% block body %}
        <h1 class="title">Rechercher un film</h1>
        <div class="search-bar">
            <label for="search_input"></label>
            <input type="search" id="search_input" class="input"
                   placeholder="Saisir un film..">
            <button class="search-btn" id="search_btn" type="submit">
                <i class="fas fa-search"></i>
            </button>
        </div>
        <div class="row row-cols-1 row-cols-md-6" id="cardgroup">
            {# Affichage de la liste des cards #}
        </div>
     
        {% block javascripts %}
            {{ encore_entry_script_tags('tmdb') }}
        {% endblock %}
    {% endblock %}

  6. #6
    Membre confirmé Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Par défaut
    De ce que je vois dans ton script js, tu renseigne déjà la route que tu souhaites requêter, dans ce cas pas besoin de mon astuce ^^

    Comment se déroule ton processus actuellement ? Arrives-tu à requêter ton contrôleur ou non ? Arrives-tu à traiter les informations envoyées à ton contrôleur ou non ? Arrives-tu à retourner une réponse à ton script js ou non ? Je me suis un peu perdu dans tout ça et je ne vois plus clairement où se situe ton problème actuel ^^

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/08/2016, 20h48
  2. [1.x] Prise en charge de 2 bases de données SQL Server par Symfony
    Par technopole dans le forum Symfony
    Réponses: 1
    Dernier message: 04/03/2008, 13h15
  3. [C#] Récupérer les données d'un control pictureBox
    Par cMoMo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/12/2006, 10h48
  4. Récupération de données dan sun controle
    Par integrale dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2006, 20h31

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