在利用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’ );