我们有许多客户同意在其网站上提交表单后向我们发送表单数据。这是可能的,处理这个问题的最佳方法是什么?我们的网站建立在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页面基本上做了一些检查,并将数据插入表中。
此过程确实有效,但不一致。数据并不总是进入数据库。那就是问题所在。还有另一种方法可以做到这一点,不会有数据丢失吗?
答案 0 :(得分:2)
进入数据库的数据非常深入。第一步是找出请求未通过的位置。找到弱链接,然后修复该部分。
很可能,除了这段javascript之外还有其他导致失败的问题。测试过程的每个部分,找出问题所在。机会是,它不在javascript中。
答案 1 :(得分:2)
检查服务上的表单是否由onClick
以外的方法提交。如果可以通过点击enter
或制表并点按enter
或空格键来提交表单,那么您可能会错过一些提交。使用onSubmit
而不是onClick
更加一致。
示例:
<form onsubmit="your_function_here">
此外,如果表单正在提交然后转到另一个页面,则您的javascript代码可能没有足够的时间来触发。在这种情况下,在您的函数中加一个延迟,以便在页面蒸发之前允许对图像进行GET请求。