2014-07-09 64 views
0

我必須建立大量的HTML表單,將數據發送到php後端。我會開始構建HTML格式的「老式方式」發送提交數據。作爲「sur plus」,我會在jquery上設置ajax請求(如果用戶啓用了js)。如果js可用使用ajax,而不是HTML表格

我的步驟:

  1. 檢查,如果JS是可用的,如果不與html表單提交停留如果
  2. 停止形式prevent.default提交
  3. 阿賈克斯發送數據請求

這似乎是很多額外的工作。有沒有一個技巧或「最佳實踐」讓生活變得更輕鬆?

+0

微不足道的 - >使用

+0

mhhh我認爲這將產生更多的工作,那麼我上面的方法... –

回答

2

好了,把戲很簡單:

$(function() { 
    ... 
    $('form').someAjaxSubmit({...my options..}); 
    ... 
}); 

其中ajaxSubmit會是oneanother版本的jQuery插件爲宗旨。當然,你將需要考慮輸出的位置等。

如果你沒有JS,上面的代碼顯然不會執行,表單將以「舊的方式」工作。您可以調整插件以從表單屬性中獲取所有內容,並且不需要更改代碼 - 除非您的Web應用程序數據流邏輯出於某種原因阻止了它。由於表單提交結果格式以及如何處理,通常會出現問題;但即使是完整的HTML頁面也可以被解析,並且它的身體設置而不是當前的身體 - 但我認爲它是一個混亂。在表單提交成功的情況下,僅更改DOM中所需的東西要好得多。

如果可以調整服務器,建立響應的更好的方法是檢查X-Requested-With: XMLHttpRequest標頭,並只發送內容塊更新爲html片段或甚至JSON。

+0

很大,這個插件是我一直在尋找,謝謝! –

0
  1. 檢查js是否可用=>在標籤中包裝表單。它只會在JS不工作的情況下顯示。

  2. 對於停止表單提交和發送數據,如果您使用Jquery,它非常簡單。爲了阻止你只補充一點:

    $("form").submit(function (e) { e.preventDefault(); ... 
    

以及提交你有一個寬和簡單易用的API jQuery中:負載功能,AJAX功能,等等。看看他們的文檔或實例此。

我不認爲你應該在這裏使用插件或庫,因爲它非常簡單。只有當你應該寫許多主題的行(比如驗證)時,你才應該使用插件和庫,但爲此 - 我認爲你應該單獨寫它。它也將提升自己作爲程序員。

+0

感謝RanSch的廣泛答覆。你描述的步驟是我想到的。我明白你的觀點,這並不難,但在這種情況下,我試圖很快使這個運行;)會嘗試提到的插件 –

相關問題