我有一個數據庫中有超過50個項目需要檢查,並可能編輯。我有一個網頁,使用PHP從數據庫中提取數據,並將其顯示爲網絡表單中的值。然後,我在頁面底部有一系列提交按鈕,具體取決於用戶想要做什麼。每個按鈕都使用onclick方法來調用JavaScript函數。收集表單數據爲ajax提交
在需要進行一些更改的情況下,用戶將直接在網絡表單中進行編輯。例如,在textarea中,textarea的值將顯示數據庫項目的當前內容。用戶可以編輯內容。點擊「Save Changes」按鈕調用ajax函數,使用POST請求將數據發送回服務器。
我遇到的問題可能很簡單,對於那些知道如何的人來說,就是如何從不同的表單組件收集所有更新的數據,以便在變量「FormData」(可能是數組)中發送到服務器。是否有辦法一次完成這一切,還是必須遍歷每一個表單元素並將它們逐個添加到數組中? 「msg」是指將顯示來自服務器頁面的消息的<div id="msg"></div>
。
我的AJAX功能到目前爲止是:
function callsave() {
var xmlHttp, FormData;
xmlHttp = new XMLHttpRequest;
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
document.getElementById("msg").innerHTML = xmlHttp.responseText;
}
}
xmlHttp.open("POST", "savechanges.php", true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(FormData);
}
在表格末尾的提交按鈕是:
<input type="button" value="Save Changes" id="save" onClick="callsave();">
指着我在正確的方向非常感謝。順便說一句,這是我的第一個Ajax編碼。
謝謝,這個工作除非沒有'$ .param'。不知道爲什麼。 'FormData = $('#FormName')。serialize()'完美地工作。 – John
@John你是對的,serialize()的返回結果就像查詢字符串,所以不需要使用$ .param()。我已經更新了我的答案。 – Teddy