从另一个站点上托管的表单收集数据

时间:2011-11-30 17:19:38

标签: javascript forms coldfusion data-collection

我们有许多客户同意在其网站上提交表单后向我们发送表单数据。这是可能的,处理这个问题的最佳方法是什么?我们的网站建立在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 / ...的末尾并调用该url。 form_record.cfm页面基本上做了一些检查,并将数据插入表中。

此过程确实有效,但不一致。数据并不总是进入数据库。那就是问题所在。还有另一种方法可以做到这一点,不会有数据丢失吗?

2 个答案:

答案 0 :(得分:2)

进入数据库的数据非常深入。第一步是找出请求未通过的位置。找到弱链接,然后修复该部分。

很可能,除了这段javascript之外还有其他导致失败的问题。测试过程的每个部分,找出问题所在。机会是,它不在javascript中。

答案 1 :(得分:2)

检查服务上的表单是否由onClick以外的方法提交。如果可以通过点击enter或制表并点按enter或空格键来提交表单,那么您可能会错过一些提交。使用onSubmit而不是onClick更加一致。

示例:

<form onsubmit="your_function_here">

此外,如果表单正在提交然后转到另一个页面,则您的javascript代码可能没有足够的时间来触发。在这种情况下,在您的函数中加一个延迟,以便在页面蒸发之前允许对图像进行GET请求。