wordpress ajax 服务端处理页面admin-ajax.php实现
在利用ajax时,一般分为html、js、php三个部分,在wordpress中,我们不必要再建立一个php页面来处理相关的数据,我们可以通过admin-ajax.php,在主题的functions.php中写上对应的函数即可,其中,我们必须要加上钩子。
//wp_ajax_nopriv效验用户为已登录时启用的方法
add_action( ‘wp_ajax_CheckidentityNo’, ‘CheckidentityNo’ );
//wp_ajax_nopriv效验用户为未登录时启用的方法
add_action( ‘wp_ajax_nopriv_CheckidentityNo’, ‘CheckidentityNo’ );
wp_ajax_CheckidentityNo第一个参数是wp_ajax_函数名称,wp_ajax_nopriv_CheckidentityNo表示没有登录的用户的处理函数,这里对有没有登录的用户都是一样的,所以都写上。 以下为我的代码: HTML
<form id="lqiuzhi" action="#" method="post" onsubmit="return false">
- 姓名: \*
- 身份证号: \*
Js Ajax
function blur\_checkidentityNo() {
if ($(“#identityNo”).val()==””) {
$(“#identityNomsg”).text(“必填”).addClass(“errorc”);
} else {
jQuery(document).ready(function($){
$.ajax({
type: “POST”,
url: ““ ,
data: {action:’CheckidentityNo’,identityNo:$(“#identityNo”).val(),},
success: function (date) {
if(date==1){$(“#identityNomsg”).text(“身份证已存在,请联系管理员”).addClass(“errorc”);}
else{$(“#identityNomsg”).text(“√”).addClass(“okc”);identityNoCheck=true;}
},
error : function() {
$(“#identityNomsg”).text(“错误”).addClass(“errorc”);
}
});
});
}
}
functions.php
function CheckidentityNo()
{
global $wpdb;
$cidentityNo=$_POST[‘identityNo’];
$IsHave = $wpdb -> get_var($wpdb->prepare(“SELECT count(*) FROM $wpdb->postmeta where meta_key=%d and meta_value=%s”,’identityNo’,$cidentityNo));
echo $IsHave;
die();
}
add_action( ‘wp_ajax_nopriv_CheckidentityNo’, ‘CheckidentityNo’ );
add_action( ‘wp_ajax_CheckidentityNo’, ‘CheckidentityNo’ );