使用Ajax帖子(有点困惑)
Using Ajax posts (Bit confused)
我正在使用wordpress插件中的ajax帖子来提交和验证表单值。这是我第一次使用ajax,对它的工作原理有点困惑。这是我的ajax帖子:
jQuery.ajax({
type:"post",
dataType:"json",
url: myAjax.ajaxurl,
data: {action: 'submit_data', info: info},
success: function(response) {
if (response.type == "success") {
alert("success");
}
else {
alert("fail");
}
}
});
这会将数据发布到名为 submit_data 的 php 函数,如下所示:
function submit_data() {
$nameErr = $emailErr = $phoneErr = $commentErr = "";
$full = explode("&", $_POST["info"]);
$fname = explode(":", $full[0]);
$name = $fname[1];
$femail = explode(":", $full[1]);
$email = $femail[1];
$fphone = explode(":", $full[2]);
$phone = $fphone[1];
$fcomment = explode(":", $full[3]);
$comment = $fcomment[1];
if ((empty($name)) || (strlen($name) < 4)){
$nameErr = "Please enter a name";
}
else if (!preg_match("/^[a-zA-Z ]*$/", $name)) {
$nameErr = "Please ensure you have entered your name and surname";
}
if (empty($email)) {
$emailErr = "Please enter an email address";
}
else if (!preg_match("/(['w'-]+'@['w'-]+'.['w'-]+)/", $email)) {
$emailErr = "Please ensure you have entered a valid email address";
}
if (empty($phone)) {
$phoneErr = "Please enter a phone number";
}
else if (!preg_match("/(?:'(?'+'d{2}')?'s*)?'d+(?:[ -]*'d+)*$/",$phone)) {
$phoneErr = "Please ensure you have entered a valid phone number";
}
if ((empty($nameErr)) && (empty($emailErr)) && (empty($phoneErr)) && (empty($commentErr))) {
$conn = mysqli_connect("localhost", "Mikey", "Change0", "plugindatadb");
mysqli_query($conn, "INSERT INTO data (Name, Email, Phone, Comment) VALUES ('$name', '$email', '$phone', '$comment')");
}
else {
$errorArray = array();
if (!empty($nameErr)) {
$errorArray["nameErr"] = $nameErr;
}
if (!empty($emailErr)) {
$errorArray["emailErr"] = $emailErr;
}
if (!empty($phoneErr)) {
$errorArray["phoneErr"] = $phoneErr;
}
if (!empty($commentErr)) {
$errorArray["commentErr"] = $commentErr;
}
}
die();
}
我的问题是,如果 submit_data 函数成功运行而没有错误,那么代码是否运行 ajax 成功函数?还是 ajax 成功函数在遇到submit_data结束之前运行?
AJAX 中的成功函数在收到来自服务器的响应后运行。
即在submit_data
完成执行之后。
<小时 />错误:请求失败时要调用的函数。该函数接收三个参数:jqXHR(在 jQuery 1.4.x 中,XMLHttpRequest)对象、描述所发生错误类型的字符串和可选的异常对象(如果发生)。第二个参数(除了 null 之外)的可能值是"超时"、"错误"、"中止"和"解析器错误"。发生 HTTP 错误时,errorThrow 会收到 HTTP 状态的文本部分,例如"未找到"或"内部服务器错误"。
成功请求成功时要调用的函数。该函数传递三个参数:从服务器返回的数据,根据 dataType 参数进行格式化;描述状态的字符串;和 jqXHR(在 jQuery 1.4.x 中,XMLHttpRequest)对象。
参考
相关文章:
- ajax帖子返回html
- 尝试在 jquery ajax 帖子中将变量设置为URL 的一部分
- 将单击事件附加到按钮或链接上的类,该按钮或链接会触发 AJAX 帖子,然后延迟并继续原始操作
- 如何触发带有第一个请求(Windows 身份验证)的授权标头的 AJAX 帖子
- 窗口确认在 AJAX 帖子中打印 HTML 标签
- 制作更快的jQuery AJAX帖子
- 而jquery ajax帖子中的循环
- Ajax 帖子未捕获语法错误:意外令牌非法
- 多格式ajax帖子
- AJAX 帖子 8 位干净吗?/ 与 Base64 的关系 / 另一种选择?/它在哪里
- 无法通过 AJAX 帖子访问 _SESSION 美元的数据
- 如何将我的 ajax 帖子连接到 php 和 mysql
- 这个 ajax 帖子是否正确
- 无法在 php 中获取 ajax 帖子
- 来自 Ajax Get 的 Ajax 帖子
- Ajax 帖子将参数添加到主页链接
- 服务器立即返回到 ajax 帖子,而不执行重定向代码
- 关于文本区域更改 - ajax 帖子
- 从成功的AJAX帖子中获取结果,并使用globalEval设置HTML
- Ajax帖子的重新回应