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

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2019
    Messages : 4
    Points : 5
    Points
    5

    Par défaut Redirection après un formulaire rempli NodeJS

    Bonjour / bonsoir,

    J'ai fait un système permettant de récupérer des informations d'un formulaire en nodejs,
    cependant je souhaite ouvrir une nouvelle page avec ces infos mais voila
    mon probleme : il n'y a pas de nouvelle page qui s'ouvre

    PARTIE HTML :
    Code html : 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
    <!DOCTYPE html>
    <html>
    <head>
    	<title>Corentin</title>
    	<link rel="stylesheet" type="text/css" href="css/style.css">
    	<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet"> 
    </head>
     
    <body>
    	<div class="header">Super site</div>
    	<div class="separate"></div>
    	<div class="header" style="color:#86a8dc;font-size:40px">Bienvenue sur mon site, inscrit toi</div><br><br>
     
    	<center>
    		<form method="post" action="/post.html">
    			<input class="input" type="text" name="nom" placeholder="Prénom"><br>
    			<input class="input" type="email" name="email" placeholder="Adresse email"><br>
    			<input class="input" type="password" name="mdp" placeholder="Mot de passe"><br>
    			<input type="submit" value="inscription" class="inputbtn">
    		</form>
    	</center>
    </body>
    </html>

    PARTIE NODEJS :
    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
    var express = require('express')
    var bodyParser = require("body-parser")
    var server = express()
     
    server.use(bodyParser.urlencoded({ extended: true }))
    server.listen(8080)
     
    server.get('/', function(request, response) {
    	response.sendFile( __dirname  + '/index.html')
    })
     
    server.post('/post.html', function(request, response) {
    	var nom = request.body.nom
    	var email = request.body.email
    	response.writeHead(200, {'Content-Type': 'text/html'})
    	response.write("Ravi de faire ta connaissance " + nom + " ^^" + "<br>" + "Ton adresse email est surement " + email)
    	response.end()
    })
    et enfin mon petit html post.html
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!DOCTYPE html>
    <html>
    <head>
    	<title>Infos</title>
    </head>
    <body>
    	<h1></h1>
    </body>
    </html>

    Lorsque j'appuie sur le button inscription ça m'emene dans une autre page je le vois a l'url mais ce n'est pas le title de ma page post.html
    Et moi je veux une redirection avec toutes les infos de la personne

    Esce possible de programmer une redirection de page html en nodejs la j'aimerais qu'apres l'inscription ça redirige la personne vers post.html ? merci
    Si oui comment faire ?

    Voici mon code :
    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
    var express = require('express')
    var bodyboard = require("body-parser")
    var server = express()
     
    server.use(bodyParser.urlencoded({ extended: true }))
    server.listen(8080)
     
    server.get('/', function(request, response) {
    	response.sendFile( __dirname  + '/index.html')
    })
     
    server.post('/post.html', function(request, response) {
    	var nom = request.body.nom
    	var email = request.body.email
    	var mdp = request.body.mdp
    	console.log(nom)
    })
    Merci énormement a celui qui m'aidera

  2. #2
    Membre émérite
    Inscrit en
    octobre 2011
    Messages
    1 299
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 299
    Points : 2 284
    Points
    2 284

    Par défaut

    Ce n'est pas exactement comme ça on rend une reponse avec des infos dynamiques. Il faut d'abord un engin de rendrement : ejs est peut-être plus près de syntax de html, et il ressemble plus à jsp ou asp etc si on a d'expérence de travailler avec déjà. Et c'est entendu qu'on a pleine de choix alternative, pug et autre...

    L'attribut action de la forme n'a pas de relation directe sur quelle page on va faire servir via le serveur, non, et ce n'est pas nécessairement post.html du tout. Le nom exact est caché au client et ne concerne pas vraiment le client. Le middleware/router va prendre act d'après @action, mais ça n'a rien à voir en principe le nom de la page vers laquelle le serveur "redirige"...

    [1] Si on utilise ejs comme l'engin de rendrement, on fait savoir le serveur. Et puis on décide où se trouve les pages, par exemple, ici, on décide c'est un sous-répertoire ./views, dit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //var ejs=require('ejs');
    server.set('view engine', 'ejs');
    server.set('views', './views');
    [2] Dans le router on fait appeler le rendrement on ça. Là, 'post', c'est pour dire une page de rendrement nommée post.ejs placée dans le répertoire views - et ce n'est pas la même chose que post.html.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /*
        response.writeHead(200, {'Content-Type': 'text/html'})
        response.write("Ravi de faire ta connaissance " + nom + " ^^" + "<br>" + "Ton adresse email est surement " + email)
        response.end()
    */
        response.render('post', {message: "Ravi de faire ta connaissance " + nom + " ^^" + "<br>" + "Ton adresse email est surement " + email});/
    [3] La page dynamique templative : post.ejs dans le parcours ./views, peut s'écrire comme ça, ressemblant tout à fait à post.html (existant ?).
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>Infos</title>
    </head>
    <body>
        <% if (message) { %>
            <h1><%= message %></h1>
        <% } %>
    </body>
    </html>
    Voilà !

Discussions similaires

  1. redirection apres validation formulaire
    Par liniver dans le forum Scripts
    Réponses: 3
    Dernier message: 25/11/2013, 00h34
  2. [SP-2010] redirection après validation formulaire.
    Par doctori dans le forum SharePoint
    Réponses: 15
    Dernier message: 20/07/2011, 15h37
  3. redirection après validation formulaire
    Par princesse95 dans le forum Formulaires
    Réponses: 15
    Dernier message: 19/02/2009, 23h52
  4. Redirection après un formulaire
    Par davidbxl2006 dans le forum Formulaires
    Réponses: 7
    Dernier message: 15/10/2006, 22h23
  5. [Strategie]Redirection après un formulaire
    Par kyser91 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 19/03/2004, 16h15

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