【问题标题】:call a javascript function after a submitted form data is written to DB将提交的表单数据写入数据库后调用 javascript 函数
【发布时间】:2015-06-10 19:43:19
【问题描述】:

我的问题可能看起来很尴尬。但我强烈需要答案。假设表单提交如下:

<input name="button2" type="submit" class="test" id="button2" value="submit"
       onclick="checkSubmitStatus();"/>

调用checkSubmitStatus函数时,表单还没有提交,所以表单数据还没有到达服务器端的数据库。我怎样才能让它们反之亦然?我的意思是首先,表单提交并将其数据插入服务器数据库,然后调用该javascript函数。

【问题讨论】:

  • 我建议使用一个你称为'onclick'的中间函数,并使用它为提交表单时创建一个回调,然后提交在回调中传递的表单。查看此堆栈答案:stackoverflow.com/questions/21612197/…

标签: javascript submit form-submit onsubmit


【解决方案1】:

我想你想给用户一些关于数据是否插入成功的反馈,对吧? 如果是这样,我建议您采用不同的方式。例如:

您的标记:

<form id="frm-post" method="post">
<input name="foo" value="bar" type="text" />
<button type="button" id="btn-submit">Submit</button>

您的代码:

$("#btn-submit").click(function(){

var objData = {
    type        : 'post' ,
    url         : 'your url' ,
    data        : $('#frm-post').serialize(),
    dataType    : 'text' ,
    success     : function ( dataReceived ) {
        alert(dataReceived)
    }
}

$.ajax(objData);

});

考虑到您将调用的页面将只返回您想要显示给用户的消息。

我没有测试过代码,但我认为它会让你走上正确的道路。

【讨论】:

  • 非常感谢。我认为您的代码中的 dataReceived 必须返回一条显示成功或失败的消息。但是那个 dataReceived 函数如何以及在哪里呢? @hugo-ferreira
  • 我想调用一些函数,比如window.opener.location.reload();重新加载母页。我应该把这个放在哪里? @hugo-ferreira
  • 第一个问题,dataReceived 函数是一个匿名函数,你在客户端无事可做。只是服务器端,您必须创建一个页面来接收帖子,验证它,保存在数据库中并返回要显示给用户的文本
  • 对于第二个问题,您可以在 alert() 之后使用 'window.location.reload()' 重新加载页面。但是,如果您想在 ajax 调用后刷新页面。为什么你只是不正常发布没有ajax的帖子?这对你来说会更容易。在您以简单的方式成为专家之后,保持复杂的编程风格;)
  • 如果您喜欢我的回答,请将其投票为“已接受”;)谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多