2011-11-30 96 views
0

我們有許多客戶同意在其網站上提交表單時向我們發送表單數據。這是可能的,什麼是處理這個最好的方法?我們的網站是建立在coldfusion,而客戶端網站各不相同。從其他網站上託管的表單收集數據

我讓客戶端添加一個腳本標記,以在其表單頁面上包含來自我們服務器的JavaScript文件。也讓他們添加一個onClick事件到他們的表單按鈕,所以這個JavaScript被稱爲提交他們的表單。

這是JavaScript文件:

function cpcshowElements(f) { 
var formElements = ""; 
for (var n=0; n < f.elements.length; n++) { 
    box = f.elements[n]; 
    formElements += box.name + ":" + f.elements[n].value + ",\n"; 
} 
var track = new Image(); 
/*send data to us*/ 
track.src="http://XXX.net/form_record.cfm?form="+ formElements + "&self=" + this.location; 
} 

在表單提交的cpcshowElements函數被調用,格式化的表格數據,其追加到XXX.net/...and結束調用該網址。 form_record.cfm頁面基本上會執行一些檢查並將數據插入到表中。

此過程確實有效,但不一致。數據並不總是進入數據庫。那就是問題所在。有沒有另外一種方法可以避免數據丟失?

+0

你如何通過域名轉移表單結果? – mattacular

+0

@mattacular當javascript設置圖像源時,看起來像一個簡單的GET請求。發送數據的舊技術今天仍然使用,因爲它的工作原理。這個問題的大黑洞是另一端的服務器。沒有保證他們將它安裝在需要去的地方。另外,如果通過點擊「輸入」提交表單,則「onClick」不會觸發。應該是'onSubmit' –

+0

所有代碼都存儲在我們的服務器上 - .js頁面(上面的代碼)和xxx.net/form_record頁面。客戶端唯一做的事情是在他們的表單頁面上添加.js頁面並添加onClick調用。我設置了對像處理頁面(form_record.cfm)的調用,類似於像素圖像,因此頁面應該被調用並且數據應該被插入到數據庫中。 – user1073840

回答

2

進入數據庫的數據非常深。第一步是找出請求未通過的地方。找到薄弱環節,然後修復該部分。

有可能是,還有其他問題導致的失敗比這段JavaScript。測試過程的每個部分並找出問題所在。機會是,它不在JavaScript中。

2

檢查服務器上的表單是否使用onClick以外的方法提交。如果表單可以通過點擊enter或標籤並點擊enter或空格鍵來提交,則可能會丟失一些提交。與onSubmit而不是onClick的工作更一致。

例子:

<form onsubmit="your_function_here"> 

此外,如果表單提交,然後移動到另一個頁面,你的JavaScript代碼可能沒有足夠的時間來觸發。在這種情況下,請在您的函數中加入一個延遲,以便在頁面消失前爲圖像創建GET請求。