我可以在$ .post请求中使用jQuery的serialize()和一个额外的变量吗?

目前,我有这条线:

$.post("submitmail.php", $("#contactform").serialize(), recvMailStatus); 

我是jQuery的新手,所以这可能是一个荒谬的愚蠢问题。
但我正在使这个项目有或没有javascript工作,所以如果使用此函数提交表单,我希望submitmail.php只是回显它是否成功。 如果表单刚提交并重定向到submitmail.php,我希望它显示除白色屏幕以外的其他内容,黑色文本说“邮件已成功发送”。 要做到这一点,我想我会post一个额外的变量“fromjs”或其他东西,以便页面可以相应地渲染自己。 最好的方法是什么?

您可以将其附加到您要发布到的地址:

 $.post( "submitmail.php?formjs=some_value", $("#contactform").serialize(), recvMailStatus ); 

要么:

 $.post( "submitmail.php", $("#contactform").serialize() + '&formjs=some_value', recvMailStatus ); 

最好的方法是使用$ .ajax函数,如下所示:

 $.ajax({ type: "POST", url: "submitmail.php", success: function(msg){ alert(msg); } }); 

您可以修改它以显示其他类型的窗口,JQuery有一些关于警报自定义的漂亮插件。 此外,您需要捕获表单的提交,并避免重定向您的页面。

我知道这是旧的但另一种方式是例如:

当用户单击一个按钮时,它会序列化一个表单并将2个变量添加到它将发送给PHP的列表中。 之后,PHP会响应并发回信息以显示为警报。 就像是:

 $('#send').click(function() { var regname = $('#regname').val(); var regnameid = $('#regnameid').val(); $.post('ext/engine.php', $('#regform').serialize() + {regnameid: regnameid, regname: regname}, function(data) { alert(data); }); });