2013-04-20 145 views
1

我有一個問題,實現我想要做的事情。動態填充表單與JQuery和Ajax

我正在做一個像郵箱一樣的郵箱,我想添加一個「回覆」按鈕,它將用一些值填充表單。

我在php中通過消息生成我的頁面消息。對於每條消息,我生成一個帶有自己ID的輸入按鈕,當我點擊按鈕時,我希望在一個新窗口中打開一個表單,預先填寫收件人和標題,用戶不可更改,另一個textarea用戶可以填寫他的消息。

爲此,我有一個包含3個值(收件人,標題和消息)的表單的通​​用模板。所有(目前)文本或textarea值。

是否可以使用一種形式向任何人發送消息,或者是否必須爲每個帶有預填充值的消息生成一個表單?最後的解決方案似乎相當可怕。

我試圖找到一些我只能用javascript做的事情,因爲我希望表單能夠被Ajax異步提交。 我可以創建一個onClick事件並將值傳遞給該函數,但在這種情況下,我不會擁有用戶輸入的textarea的值。

有沒有辦法做到這一點,例如,我會穿過onClick事件的值的Javascript中的整個窗體,從這些值將填充的形式的textarea的值,和然後通過Ajax發送一切?

回答

0

那麼,這就是我所做的。

對於生成的每一個都響應按鈕,我設置onClick事件傳遞我想被預先填充在我的形式向JS函數RespondMessage字段()

我同時也在頁面底部製成的形式我用CSS隱藏了。 這個表單包含儘可能多的隱藏字段,因爲我想要預先填充的數據,以及儘可能多的跨度,因爲我想顯示信息。

當我調用RespondMessage函數時,我用我調用函數的參數手動設置表單中的隱藏字段。 之後,我用我想要顯示的信息填充我的跨度(例如,我爲此消息設置收件人姓名)。

完成所有操作後,表單即可顯示。所以在設置表單中的字段之後,我只是將表單從display:none傳遞給display:block,並且做了很多css技巧來使它們變得光滑美觀。

所以現在你已經有了預先填好的表單,你只需要另一個函數來進行Ajax調用,以避免在每次響應後重新加載頁面,並且你會用表單的提交按鈕的onClick事件調用它。

我希望這個過程能幫助別人。

我不太確定這是否是最好的方法,我發現它非常髒並且可以利用,所以您需要比平時更多的服務器端檢查,但它可以完成這項工作。

我沒有提供代碼,因爲它大多都是真正專用於您正在設置的應用程序。