在利用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"> <ul> <li> <span>姓名:</span> <input type="text" name="uname" id="uname"> <font id="unamemsg">*</font> </li> <li> <span>身份证号:</span> <input type="text" name="identityNo" id="identityNo"> <font id="identityNomsg">*</font> </li> <input type="submit" value="提 交" onclick="sub()" class="subutton"> </li> </form>
Js Ajax
function blur_checkidentityNo() {
if ($("#identityNo").val()=="") {
$("#identityNomsg").text("必填").addClass("errorc");
} else {
jQuery(document).ready(function($){
$.ajax({
type: "POST",
url: "<?php echo admin_url("admin-ajax.php"); ?>" ,
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' );


苏公网安备32031102020149