使用AJAX查看注册电子邮件

时间:2017-02-20 作者:ShabbyAbby

我正在尝试对注册表上的电子邮件进行AJAX检查。我的代码如下所示:

function add_ajaxurl_cdata_to_front(){ ?>
    <script type="text/javascript"> //<![CDATA[
        ajaxurl = \'<?php echo admin_url( \'admin-ajax.php\' ); ?>\';
    //]]> </script>
<?php }

add_action( \'wp_head\', \'add_ajaxurl_cdata_to_front\', 1);
add_action( \'wp_footer\', \'add_js_to_wp_footer\' );
function add_js_to_wp_footer(){ ?>
    <script type="text/javascript">
    jQuery(\'#reg_email\').on("change",function(){
        jQuery.ajax({
            type: \'POST\',
            url: ajaxurl,
            data: {"action": "custome_ajax_email_check"},
            success: function(data){
                if(data.result) {
                    alert(\'Email exists!\');
                } else {
                    alert(\'Email does not exist!\');
                    console.log(data.result)
                }
            }
        });
    });
    </script>
<?php }

add_action(\'wp_ajax_nopriv_custome_ajax_email_check\', \'custome_ajax_email_check\');

function custome_ajax_email_check(){
    $email = $_POST[\'email\'];

    // do check
    if ( email_exists($email) ) {
        $response->result = true;
    }
    else {
        $response->result = false;
    }

    echo $response;
}
我总是得到错误的响应,当我回显$响应时,我得到500个内部服务器错误。

我做错了什么?

1 个回复
最合适的回答,由SO网友:AddWeb Solution Pvt Ltd 整理而成

您在ajax中遗漏了一些东西。请查找以下更新的代码,这些代码将帮助您解决问题

function add_ajaxurl_cdata_to_front(){ ?>
   <script type="text/javascript"> //<![CDATA[
       ajaxurl = \'<?php echo admin_url( \'admin-ajax.php\' ); ?>\';
   //]]> </script>
<?php }

add_action( \'wp_head\', \'add_ajaxurl_cdata_to_front\', 1);
add_action( \'wp_footer\', \'add_js_to_wp_footer\' );
function add_js_to_wp_footer(){
    ?>
   <script type="text/javascript">

   jQuery(\'document\').ready(function(){
        jQuery(\'#reg_email\').on("change",function(){            
            jQuery.ajax({
                type: \'POST\',
                url: ajaxurl,
                data: {"action": "custome_ajax_email_check"},
                success: function(data){
                    console.log(data);
                    data = jQuery.parseJSON(data);
                    console.log(data.result);
                    if(data.result) {
                        alert(\'Email exists!\');
                    } else {
                        alert(\'Email does not exist!\');

                    }
                }
            });
        });
    });
   </script>
<?php }

add_action( \'wp_ajax_custome_ajax_email_check\', \'custome_ajax_email_check\' );
add_action(\'wp_ajax_nopriv_custome_ajax_email_check\', \'custome_ajax_email_check\');

function custome_ajax_email_check(){
   $email = $_POST[\'email\'];

   // do check
   if ( email_exists($email) ) {
       $response->result = true;
   }
   else {
       $response->result = false;
   }

   echo( json_encode( $response));
   wp_die();
}
希望这对你有帮助!

相关推荐

JqueryUi对话框给出未捕获的TypeError:This._addClass不是函数错误

我有一个网站,我们需要一些自定义php编码来连接到外部数据库,以获取几个销售我们产品的供应商的产品评论URL。我们试图实现的基本想法是让用户注册他们的产品,然后如果他们愿意留下评论,就延长保修期。我正在使用XYZScript。com的“插入PHP”插件来实现这一点。该主题最初只加载了jQuery,以避免创建子主题,我们正在php脚本中加载jQueryUI。因此,我们将jQuery加载到文档的标题中,将jQueryUI加载到文档的正文中。我不太确定这是因为加载脚本的顺序造成的,还是其他一些冲突的javasc