Estoy trabajando con nodejs, express y mongodb. Y estoy trabajando en cloud9 IDE
Quiero crear una página con un formulario que tome la entrada del usuario, busque los datos correspondientes de la base de datos y muestre esos datos en la misma página (después de recargar), y si los datos no están presentes, muestre una respuesta específica.
esto es lo que he hecho-
Ruta-
app.get("/",function(req,res){ var asked = req.query.asked; Name.findOne({name:asked},function(err,foundAsked){ if(err){console.log("ERROR!!!");} else{res.render("Landing.ejs",{foundAsked:foundAsked}); } }); });archivo EJS-
//Form takes name as input from the user <form > <input type="text" name="asked" action="/" method="GET"> <button class="button">Submit</button> </form> //If data is found last name is returned <% if(foundAsked){ %> <h2 > <%= foundAsked.Lastname %> </h2> <% } %> //blank space stays there which is replaced by a response,if after //submission nothing is found <% if(!foundAsked){ %> <h5></h5> <% } %>JS-
$(".button").click(function(){ $("h5").text("No data present"); });Pero el problema es que, si no se encuentran datos, se muestra la respuesta, pero permanece solo el tiempo antes de que la página se vuelva a cargar. Intenté buscar una respuesta, pero no encontré ninguna. Por favor, ayuda.
El texto que desea que se muestre aparecerá solo después de hacer clic en el button y, una vez recargado, tendrá que hacer clic nuevamente (y el clic mostrará el texto y activará una recarga, por lo que el texto desaparecerá nuevamente).
Debe tener otro botón (que no se envíe) para activar este mensaje. O más bien, ¿por qué no mostrarlo inicialmente (poner esto en línea, dentro de las etiquetas <h5> )?
Debe diferenciar entre 'sin datos' o 'sin consulta'. puedes hacerlo en el back-end, algo similar a esto:
app.get("/",function(req,res){ var asked = req.query.asked; Name.findOne({name:asked},function(err,foundAsked){ if(err){console.log("ERROR!!!");} else{res.render("Landing.ejs",{foundAsked:foundAsked, asked: asked}); } }); }); Y luego en Landing.ejs :
<% if(!foundAsked && asked){ %> <h5>No data present</h5> <% } %>