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

Laravel PHP Discussion :

Insertion Tableau d'objet dans bdd


Sujet :

Laravel PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2019
    Messages : 46
    Par défaut Insertion Tableau d'objet dans bdd
    Bonjour,
    J'ai un léger soucis dans l'insertion de ce tableau dans ma bdd
    Code 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
    let dataP =
       [
        {
            fk_id_quest:1,
            fk_id_post:id,
            reponse : $("#descriptif_offre").val(),
            created_at:date.getTime()/1000,
        },
        {
            fk_id_quest:2,
            fk_id_post:id,
            reponse : $("#xp_annee_dep_num").val(),
            created_at:date.getTime()/1000,
        }];

    Je passe par une requête ajax mais le problème vient du php
    Requête:
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $.ajax({
        url: "/register/addpostulantR",
        method: "POST",
        dataType: "text",
        data: JSON.stringify(dataP),
        success: (data) => {
            console.log("success :\n", data);
        },
        error: (xhr, erreur) => {
            console.log("error %s:\n", erreur, xhr.responseText);
        }
    })

    Mon controller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public function addPostulantR(Request $request){
            return response()->json([
                'dataP' => Intervenant::addPostulantR($request->all())
            ]);
        }
    Mon model

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public static function addPostulantR($data){
            //dd($data);
            return DB::table('reponse')
                ->insertGetId($data);
        }
    Je pense savoir d'ou vient le problème mais j'ai beau chercher et bidouiller je n'y arrive pas.., un petit coup de pouce serait le bienvenu, je ne veux pas la solution, j'aimerais comprendre.
    Si j'envoie un simple objet pas de soucis, ça l'enregistre bien dans ma bdd, mais lorsque je veux envoyer un tableau d'objet ça fail..
    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    il faut mettre un foreach() quelque part.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2019
    Messages : 46
    Par défaut
    Merci de ta réponse,
    le foreach, dans le controller, j'avais déjà essayé mais je dois mal m'y prendre.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2019
    Messages : 46
    Par défaut
    Pourrais tu me donner un peu plus de détails s'il te plait?
    J'ai l'impression qu'au plus j'avance au moins j'y vois clair.., 2 jours que je bloque sur ça.., j'ai l'impression d'être un gros débilos.
    J'ai fais ça mais c'est du grand n'importe quoi, je me mélange plus les pinceaux qu'autre chose..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        public function addPostulantR(Request $request){
            $dataset = $request->all();
            $aAa = array();
            foreach ($dataset as $key){
                $aAa[]['fk_id_quest'] = $key->fk_id_quest;
                $aAa[]['fk_id_post'] = $key->fk_id_post;
                $aAa[]['reponse'] = $key->reponse;
                $aAa[]['created_at'] = $key->created_at;
            }
            return Intervenant::addPostulantR($request->all());
     
        }

  5. #5
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2019
    Messages : 46
    Par défaut
    J'ai aussi testé ça mais pareil.., du grand n'importe quoi..j'ai besoin d'une pause, je bloque sur un truc de *****.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public function addPostulantR(Request $request){
        $dataset = $request->all();
            foreach($dataset as $key => $value) {
                print "$key => $value\n";
            }
     
    }

  6. #6
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2019
    Messages : 46
    Par défaut
    Avec ce code ça ne fonctionne pas.., une petite aide? en method get j'arrive tres bien à récup du json, mais là je seche..la réponse doit être toute bête, mais j'y arrive pas..

    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
     
        public function addPostulantR(Request $request){
     
            $lstdataP = json_decode($request->all());
            $postulants = [];
            $nb = 0;
     
                foreach($lstdataP as $post){
                    $postulants[$nb]['fk_id_quest'] = $post->fk_id_quest;
                    $postulants[$nb]['fk_id_post'] = $post->fk_id_post;
                    $postulants[$nb]['reponse'] = $post->reponse;
                    $postulants[$nb]['created_at'] = date("Y-m-d\TH:i:s",$post->created_at);
                    $nb++;
                }
     
            return response()->json(["dataP"=>Intervenant::addPostulantR($postulants)]);
    }

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/12/2012, 23h21
  2. delete sur un tableau d'objets dans destructeur
    Par Mihnea24 dans le forum Débuter
    Réponses: 6
    Dernier message: 05/12/2008, 22h42
  3. Stockage objets dans BDD relationnelle
    Par obalais dans le forum Persistance des données
    Réponses: 6
    Dernier message: 15/03/2007, 19h18
  4. Insertion d'un objet dans MySQL ?
    Par AsmodeeFS dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 30/07/2006, 22h24
  5. Insérer un tableau d'objet dans un Jpanel
    Par Flophx dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 25/04/2006, 20h37

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