2012-05-16 35 views
4

請原諒我缺乏100%特定的技術語言...我有點破解...如何在不重定向到表單操作頁面的情況下處理表單操作的結果?

後端開發人員(誰在我無法訪問的服務器上工作)已經建立了一個表單對我而言,我想知道什麼是將該表單操作的響應用作用戶錯誤或成功消息的最佳方式。例如,當我用GET變量(例如remote-server.com/action.cfm?email=nothing)敲擊表單操作時,遠程cfm頁面將只顯示「-3」,這是「bad」的錯誤代碼電子郵件」。開發人員已經設置了一系列錯誤/成功代碼,與其他錯誤/成功案例相對應。

所以我在尋找,基本上做一個解決方案:

  1. 注意到表格數據並將它無需用戶定向到該網頁remote-server.com/action.cfm。

  2. 讀取來自remote-server.com/action.cfm的響應,這將是一個逗號分隔的數字序列。

  3. 將這些數字指定爲PHP中的字符串,以便我可以嗅出錯誤/成功代碼並在我的前端代碼中顯示相應的消息。

如此反覆,簡而言之問題是,我想用表單動作=「遠程server.cfm」 ......但沒有將用戶重定向到CFM的頁面。相反,它應該將cfm頁面的輸出到我的表單的PHP頁面,以便我可以處理它。這有意義嗎?我環顧四周,人們似乎認爲AJAX是做到這一點的唯一方法。任何其他想法?非常感謝!

+1

聽起來就像你想通過ajax POST表單,並回讀響應。 [jQuery.post](http://api.jquery.com/jQuery.post/)可以幫助你。然後,您可以使用JS對象'{-3:'bad email,-2:'bad developer'}映射錯誤代碼並顯示相應的消息。 – mpen

回答

4

這是正確的,好像你需要使用Javascript和AJAX。通過AJAX調用,您可以在後臺向該服務器發送異步發佈查詢,而無需將用戶重定向到任何其他頁面,並解析響應變量。

如果提交有錯誤,您可以顯示正確的錯誤(或者如果您知道服務器期望什麼,甚至在提交之前甚至沒有提交表單驗證),並且如果AJAX調用成功,則只需重定向用戶到不同的頁面(並且不再發布表單,因爲它已經提交過一次)

+0

這是有道理的。我將研究jQuery.post - 似乎應該能夠做我需要的一切。非常感謝所有人 - 你是一個了不起的社區! – user1399181

+0

記得標記他的答案爲接受! –

+0

看起來我碰到了一個障礙 - 由於遠程服務器與我的php文件不在同一個域中,所有的ajax請求都回來了。是這樣的我最好的解決方案? http://www.ajax-cross-domain.com/ – user1399181

0

爲什麼不使用AJAX?讓JavaScript/jQuery在表單上附加提交處理程序,並使用AJAX輕鬆提交,然後閱讀適當的響應和其他內容,並很好地爲用戶顯示它。

如果JavaScript被禁用,表單將被正常提交,這不是很漂亮,但應該仍然可用。

相關問題