2017-04-19 21 views
3

イム、cloud9 IDE、フォームからの入力を取るデータベースからデータを取得し、nodejsでの作業出力

に取り組んで急行とmongodb.Andイムを示す私は、ユーザからの入力を取る形でページを作成したいです、データベースから対応するデータを検索し、そのデータを同じページ(リロード後)に表示し、データが存在しない場合に特定の応答を表示する。

これは私が

Route-

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}); } 
    }); 
}); 

完了し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"); 
}); 

をファイル - している。しかし、問題があれば、ということは何かということですデータが見つかりませんでした。 eが表示されますが、ページがリロードされる前の時間だけ保持されます。 私は答えを探してみましたが、何も見つかりませんでした。助けてください。

+0

は、どのように(のparamsを含む)完全なURLは次のように見えますか? –

+0

'console.log(foundAsked)'を実行すると、コンソールには何が入りますか? –

+1

私のメインページ、URLは単に "/"なので、私もその問題を編集しました。@ ShimonBrandsdorfer –

答えて

1

あなたが表示したいテキストはbuttonがクリックされた後に表示され、一度リロードすると再びクリックする必要がありますテキストが表示され、リロードがトリガーされるので、テキストは再び消えます)。

このメッセージを表示するには、別のボタン(送信しません)が必要です。または、なぜ、最初に表示しないのですか(これをインラインで、<h5>タグ内に入れてください)?

'no-data'と 'no-query'を区別する必要があります。 あなたはバックエンドでそれを行うことができ、これに似た何か:Landing.ejs

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}); } 
    }); 
}); 

そして:

<% if(!foundAsked && asked){ %> 
     <h5>No data present</h5> 
    <% } %> 
+1

私はフォームの提出前に、最初にfoundAskedが定義されていないので、入力自体を取らずにレスポンスを表示します。フォームの送信後もfoundAskedが定義されていない場合は、表示します。 –

+0

そう、私は考えました。私を編集させてください –

+1

ありがとう、非常にスムーズに働いていたように私は望んだ。 –

関連する問題