我一直在尝试为我正在开发的 wordpress 网站创建一个仅限邀请的系统(尽可能避免使用插件)。
该网站是一个魔兽世界公会网站,我有一个页面列出了公会的新申请人,有接受和拒绝选项。这一切都很好。
但是,我正在尝试通过 ajax 提交表单,这就是我感到困惑的地方。我有我的表格
<?php
global $current_user;
// if the user can send invites
if (current_user_can("invite_users")) {
?>
<form action="applicantaccept" class="applicantacceptform" method="GET">
<input type="hidden" name="email" value="<?php echo $row['Email'];?>" />
<input type="hidden" name="invitecode" value="<?php echo generateRandomString(); ?>" />
<input style="background: none; border: none; color: white; text-decoration: underline; font-size: 1em; float: left;" type="submit" value="Send Invitation" />
</form>
<?php
}
?>
我有我的 jquery:
// ACCEPT
$('.applicantacceptform').submit(function (ev) {
// INVITE FORM
var form = $(this);
var email = form.find('input[name="email"]').val();
var invitecode = form.find('input[name="invitecode"]').val();
$.post("applicantaccept", {
email: "" + email + "",
invitecode: "" + invitecode + ""
})
.done(function (data) {
alert("Applicant Accepted" + data);
})
.fail(function (data) {
alert("Failed To Accept Applicant. Please speak to administrator if this problem continues");
});
ev.preventDefault();
});
当我提交ev.preventDefault()
礼物时,警报显示成功。但是,这些值被解析为空字符串,直到目标页面给我空白的 sql 记录。但是,如果我删除了 preventdefault,我当然会按照链接进行操作,但是现在可以正确发送值。
这可能是什么原因造成的?
已解决:感谢@Pointy 的修复,下面的工作代码(只需将表单中的“GET”切换为“POST”
<?php
global $current_user;
// if the user can send invites
if (current_user_can("invite_users")) {
?>
<form action="applicantaccept" class="applicantacceptform" method="POST">
<input type="hidden" name="email" value="<?php echo $row['Email'];?>" />
<input type="hidden" name="invitecode" value="<?php echo generateRandomString(); ?>" />
<input style="background: none; border: none; color: white; text-decoration: underline; font-size: 1em; float: left;" type="submit" value="Send Invitation" />
</form>
<?php
}
?>