2017-03-28 118 views
1

我有一個contact頁面,其中一個可以把他們的contact detailsmessage。一旦他們把他們的信息,它被保存到mongodb collection。如果沒有錯誤,我想清空聯繫表,並顯示一條彈出消息說,謝謝。現在,如果我使用nodejs一次渲染多個頁面

app.post("/contact", function(req, res){ 
    var name = req.body.name; 
    var email = req.body.email; 
    var phone = req.body.phone; 
    var message = req.body.mess; 
    var contact_message = new Contact({name:name,email:email,phn_no:phone,message:message}); 
    contact_message.save(function (err) { 
    if (err) { 
     return err; 
    } 
    else { 
     console.log("Contact details saved"); 
     res.render("contact"); 
    } 
    }); 

上面的代碼只是呈現回到同一contact page沒有感謝你的消息。如果我試圖創建一個新的ejs頁面(如:thankyoupage)通過發送使用信息,並使其在該網頁:

res.render("thankyoupage",{message: "thankyou"}); 

它將使只有新的三江源頁面,並留下聯繫頁面不受影響。所以我在這種情況下不會有聯繫頁面。我想要的東西是兩個混合的地方,我會顯示一個彈出窗口顯示在背景上的聯繫頁面上的空字段感謝您的消息。無論如何,我可以做到這一點?任何建議/幫助/例如將不勝感激。

回答

1

在您的聯繫頁面中,您可以插入首次加載頁面時運行的腳本。該腳本檢查是否在頁面中設置了某個Javascript變量。如果設置了該變量,那麼腳本會彈出一條感謝消息。如果未設置Javascript變量,那麼該腳本不執行任何操作。

然後,在服務器上,當您呈現頁面時,您會向該模板傳遞一個屬性,告訴它該爲JavaScript變量插入什麼內容。這樣你的渲染操作就可以控制頁面是否會彈出消息。

您可以根據需要將其設置爲功能豐富。例如,您可以傳遞渲染,您希望頁面顯示的確切消息,並且模板可以將該消息放入頁面中的腳本將顯示的JavaScript變量中。

同樣,彈出窗口可以像你想要的那樣豐富。它可能是整個div佔用整個頁面,而頁面的聯繫人部分暫時隱藏,或者您可以在常規聯繫頁面上使用alert()prompt()消息框。

+0

我不是那麼肯定我怎麼能這樣做,我得到各種各樣的錯誤,如果我嘗試發送一些東西渲染到JavaScript – scrpaingnoob

+0

@scrpaingnoob - 你將不得不顯示你的模板和你爲我們嘗試了什麼瞭解您做錯了什麼或如何幫助您解決問題。 – jfriend00

+0

我想我明白你的意思了,謝謝你的建議 – scrpaingnoob