javascript发布失败其他人工作正常-与表单相关

javascript发布失败其他人工作正常-与表单相关,javascript,php,forms,http,http-post,Javascript,Php,Forms,Http,Http Post,我试图通过onsubmit发布一些从表单中提取的数据。POST失败(firebug将其显示为失败),即使标题和POST数据看起来很好。我有很多其他的帖子都很好。所使用的代码是现有代码的副本,只是做了一些更改(响应函数和调用的php函数) 我已尝试将要发送的数据减少到最低限度,但仍然失败。我还尝试将被调用的PHP函数缩减为只回显一个小字符串,实际上只是一行 我能看到的唯一区别是这个过程是从表单onsubmit调用的。下面是一些代码: 首先是表格(部分) 函数updateCase是注释掉的代码的另一

我试图通过onsubmit发布一些从表单中提取的数据。POST失败(firebug将其显示为失败),即使标题和POST数据看起来很好。我有很多其他的帖子都很好。所使用的代码是现有代码的副本,只是做了一些更改(响应函数和调用的php函数)

我已尝试将要发送的数据减少到最低限度,但仍然失败。我还尝试将被调用的PHP函数缩减为只回显一个小字符串,实际上只是一行

我能看到的唯一区别是这个过程是从表单onsubmit调用的。下面是一些代码:

首先是表格(部分)

函数updateCase是注释掉的代码的另一个版本,它本身就是工作岗位的副本(尽管上一次使用推荐的verson只发送了一段同样失败的数据)。无论如何,这是:

function updateCase(caseid,pstv) {

    var obj = newRequestObject();
    obj.onreadystatechange = function() {
        if (obj.readyState == 4) {
            if (obj.status == 200) {
                browseCaseReturn(htmlspecialchars_decode(obj.responseText, 'ENT_QUOTES'));
                delete obj;
                obj = null;
            }
        }
    }
    obj.open('POST','include/FLWG_ucase.php',true);
    obj.setRequestHeader('Accept-Charset','utf-8');
    obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    obj.send(pstv);
}
我刚刚尝试从表单中删除method=“post”。这导致POST错误414URI太大(数据可能很大,因为它们是法庭案例),所以我假设它默认为get。我把它改回method=“post”和no 414

我的猜测是,可能表单正在发布,由于某种原因,我的帖子失败了,因为表单的帖子还没有被处理。如果是这样,那么我如何停止表单发布(看到的帖子说最好使用onsubmit而不是onclick)。我在这里搜索了好几篇文章,但似乎没有一篇涉及到这个问题。我很确定发送的底层数据没有问题(requestpost在相应的POST变量中显示了所有预期的数据)

如有任何帮助/建议,将不胜感激


PS这是我的第一篇文章。

如果这是您的JS代码,那么您必须删除函数定义中的$

函数FLWG_editSubmit($caseid){
//生成要发布的变量
变量pstv='FLWGcaseid='+caseid;
...

}
根据评论,在检查真实数据后,答案是防止默认表单提交。根据:

onsubmit="event.preventDefault(); return FLWG_editSubmit(18)"

我刚刚看到,如果右键单击POST请求(在Firebug中),可以重新发送请求。我在一个失败的请求上尝试了这个方法,请求成功了。因此,失败的背后似乎存在着时间冲突。@JRemmenud,我已经删除了它,但仔细检查了一下,它不在那里(不确定它是如何进入的)。说我已经得到了答案(我想)。这包括
event.preventDefault()。ie
onsubmit=“event.preventDefault();返回FLWG_editSubmit(18)”
。我现在只需要检查我想要的实际代码。
function updateCase(caseid,pstv) {

    var obj = newRequestObject();
    obj.onreadystatechange = function() {
        if (obj.readyState == 4) {
            if (obj.status == 200) {
                browseCaseReturn(htmlspecialchars_decode(obj.responseText, 'ENT_QUOTES'));
                delete obj;
                obj = null;
            }
        }
    }
    obj.open('POST','include/FLWG_ucase.php',true);
    obj.setRequestHeader('Accept-Charset','utf-8');
    obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    obj.send(pstv);
}
onsubmit="event.preventDefault(); return FLWG_editSubmit(18)"