Bonjour,

Si vous avez des pistes pour envoyer les données d'un formulaire modal à la base de donnée en Node js. merci d'avance. je vous mets un partie du code.
Je ne vois pas comment l'ecrire dans la route vu que j'ai genre un bouton avec href="#modal" (qui renvoie à ce formulaire sur la même page).

div.col-md-3.form-box-login(class="remodal" data-remodal-id="modal" style="width:100%")
                                    h3 DEVIS
                                    div
                                        form(class="form-default" role="form" action="" method="POST")
                                            div
                                                label() Mission: 
                                                input(type="text" name="mission" disabled value=demand.dmd_title)
                                            div
                                                label() Référence: 
                                                input(type="text" name="reference" disabled value=demand._id placeholder="Référence Mission")
                                            div
                                                label() Nature : 
                                                input(type="text" name="nature" placeholder="Nature")
                                            div
                                                label() Objet : 
                                                input(type="text" name="objet" placeholder="Objet")
                                            div
                                                label() Date de début : 
                                                input(type="text" name="date_db" value=demand.dmd_desired_start_date placeholder="AAAA-MM-JJ")
                                            div
                                                label() Date de fin : 
                                                input(type="text" name="date_fn" value=demand.dmd_desired_end_date placeholder="AAAA-MM-JJ")
                                            div
                                                label() Emis par (Le nom et prénom du consultant) : 
                                                input(type="text" name="Nom" value=user.name)
                                            div
                                                label() Tarif unitaire (hors taxe en €) :
                                                input(type="text" id="tf_u" name="tf_u" placeholder="Prix proposé")
                                            div
                                                label() Quantité (choisir l'unité):
                                                br/
                                                br/
                                                div.col
                                                    label.control.radio-control Jour(s)
                                                        input(type="radio" value="Jour" name="unit" )
                                                        div.control-indicator
                                                    br/
                                                    label.control.radio-control Heure(s)
                                                        input(type="radio" value="Heure" name="unit" )
                                                        div.control-indicator
                                                    br/
                                                    label.control.radio-control Mois
                                                        input(type="radio" value="Mois" name="unit" )
                                                        div.control-indicator
                                                    br/

                                                select(id="quantity" name="quantity")
                                                    option(value="0") 0
                                                    option(value="1") 1
                                                    option(value="2") 2
                                                    option(value="3") 3
                                                    option(value="4") 4
                                                    option(value="5") 5
                                                    option(value="6") 6
                                                    option(value="7") 7
                                                    option(value="8") 8
                                                    option(value="9") 9
                                                    option(value="10") 10
                                                    option(value="11") 11
                                                    option(value="12") 12
                                            div
                                                label() TOTAL TTC (en €) :
                                                input(type="text" id="total" name="total" disabled value="") 

                                            div
                                                input(type="hidden" name="devis_authr" value=user._id)

                                            div
                                                input(type="submit" class="submit-btn" value="Soumettre")

Merci

7 réponses


Defy
Réponse acceptée

un route POST c'est pour envoyé des data de ton client vers ton server, mais ce ne sont pas des routes qui sont accessible depuis le navigateur. Le navigateur n'effectura que du get pour rendre les vues. Donc dans ton server node tu créer ta route en post avec ton controller un peut de ce type:

route.post("/demand/:id_demand", funciton(req, res){
    const data = res.body;
    // ici ton traitement avec tes données
});

et dans ton formulaire:

    <form action="url/du/server" method="post">
    <!-- tes inputs -->
    </form>

ben en rajoutant un bouton dans ta modal et en l'entourant d'une balise form. je ne voit pas trop le probleme la. peut etre que j'ai pas bien saisie ta question.

En gros pour envoyer ou enregistrer dans base de donnée j'dois faire quelque chose du type "route.post("/demand/:id_demand", controller.blabla)"
mais quand j'appuie pour afficher le formulaire modal sur l'url j'ai "/demand/id_demand#modal" vu que j'ai mis href="#modal" dans le bouton. pour le chemin dans route.post je ne sais pas comment le decrarer!
Merci

ben dans ton formulaire, tu fait un action avec l'url d'appel et un bouton submit. ca n'a aucun rapport avec le #modal dans l'url.

tu sais ce que c'est une route post get put ou delete? parceque la apparament il y a de grosse lacune au niveau http

Pas url, chemin** pardon. la route c'est celle qui redirige les requetes vers une fonction du controlleur non? Get c'est pour recupérer les ressources qui permet d'afficher la page, Post c'est un peut comme Get mais je pense il peut recuperer les données d'un formulaire par exemple, et Delete va supprimer une ressource sur le serveur. Corrige moi si j'ai faux merci

Merci pour ton aide

Pas de soucie :-) on est la pour ca