2011-11-30 108 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请求。