2017-06-13 4 views
0

Comment puis-je envoyer les valeurs de texte de span à un contrôleur?Node.js envoie les valeurs d'étendue au contrôleur

user_profile.hbs

<div class="panel panel-default"> 
    <div class="panel-heading">User Profile</div> 
    <div class="panel-body"> 
    <form method="get" enctype="multipart/form-data" action="/home/user/profile/update"> 
     <div> 
     Username: <span id="user_upd">{{user}}</span> 
     </div> 
     <div> 
     Email: <span id="email_upd">{{email}}</span> 
     </div> 
     <div> 
     Type: <span>{{type}}</span> 
     </div> 
    </div> 
    <input type="submit" value="Update Info"/> 
    </form> 
</div> 

userController.js

// Display User update form on GET 
module.exports.userUpdateGet = function(req, res) { 
    console.log(req.body); 
    res.render('user_profile_update', { 
    usename: req.body.username, 
    email: req.body.email, 
    user: req.user.username 
    }); 
} 

Et ceci est l'opinion user_profile_update:

<div class="panel panel-default"> 
    <div class="panel-heading">Update User</div> 
    <div class="panel-body"> 
    <form method="post" enctype="multipart/form-data" action="/home/user/profile/update"> 
     <div> 
     <label for="username">Username: </label> 
     <input type="text" name="username" id="username" value={{username}}/> 
     </div> 
     <div> 
     <label for="email">Email: </label> 
     <input type="text" name="email" id="email" value={{email}}/> 
     </div> 
    </div> 
    <input type="submit" value="Save Changes"/> 
    </form> 
</div> 

Mon but est d'afficher les informations de user_profile.hbs comme valeurs d'entrée à user_profile_update.hbs.

EDIT:

J'ai essayé d'utiliser ce code js, mais la vue user_profile_update est pas rendu ... pourquoi?

$(document).ready(function(){ 
    var user,email; 
    $("#submit_update").click(function(){ 
     user= $("#user_upd").text(); 
     email= $("#email_upd").text(); 
     $.get("/user/profile/update", {user: user,email: email}, function(data){ 
     }); 
    }); 
    }); 

Répondre

0
<div class="panel panel-default"> 
    <div class="panel-heading">User Profile</div> 
    <div class="panel-body"> 
    <form method="get" enctype="multipart/form-data" action="/home/user/profile/update"> 
     <div> 
     Username: <span>{{user}}</span> 
     </div> 
     <div> 
     Email: <span>{{email}}</span> 
     </div> 
     <div> 
     Type: <span>{{type}}</span> 
     </div> 
    </div> 
    <input type="submit" value="Update Info"/> 
    </form> 
</div> 

Remplacez cette

<div class="panel panel-default"> 
    <div class="panel-heading">User Profile</div> 
    <div class="panel-body"> 
    <form method="get" enctype="multipart/form-data" action="/home/user/profile/update"> 
     <input type="hidden" name="user" value={{user}}/> 
     <input type="hidden" name="email" value={{email}}/> 
     <input type="hidden" name="type" value={{type}}/> 
     <div> 
     Username: <span>{{user}}</span> 
     </div> 
     <div> 
     Email: <span>{{email}}</span> 
     </div> 
     <div> 
     Type: <span>{{type}}</span> 
     </div> 
    </div> 
    <input type="submit" value="Update Info"/> 
    </form> 
</div> 

Vous pouvez utiliser input hidden ou lorsque le formulaire onclick vous pouvez utiliser js pour définir cookies & puis récupérer le cookie du serveur

+0

je le ferais mieux comme à utilisez js, mais cela ne rend pas la vue attendue. Pourriez-vous vérifier le code de ma réponse mise à jour? – Valip