【发布时间】:2014-04-05 12:10:40
【问题描述】:
我在 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 成功函数?还是在遇到submit_data结束之前运行ajax成功函数?
【问题讨论】:
-
你又发了吗?
标签: javascript php jquery ajax wordpress