.submit 上的 jQuery 检查数据库中是不是存在登录并处理表单

Posted

技术标签:

【中文标题】.submit 上的 jQuery 检查数据库中是不是存在登录并处理表单【英文标题】:jQuery on .submit check if login exists in DB and process the form.submit 上的 jQuery 检查数据库中是否存在登录并处理表单 【发布时间】:2020-11-20 07:45:56 【问题描述】:

我有此自定义 WP 用户的注册表单,其中必填字段之一是登录名。

表单以两种方式处理,php 和 jQuery,效果很好。

我想做的是检查数据库以查看给定的登录名是否已经存在。

不必即时进行,也可以在提交时进行检查,我将在其中运行另一个 PHP 脚本,使用简单的代码说“checkUser.php”:从 DB 给定名称中选择并返回 true if存在(

我只是不知道是否应该扩展现有代码或寻找全新的方法。

欢迎提出任何意见。

函数.php:

/**
 * Enqueue scripts / styles
 */
public static function theme_enqueue_styles()

    wp_enqueue_script('xxxx', esc_url(get_stylesheet_directory_uri(XXXX) . '/assets/js/jqueryFile.js'), array( 'jquery' ), XXXX, true);
    wp_localize_script(
        'xxxx',
        'parajax',
        array(
        'ajax_url' => admin_url('admin-ajax.php'),
        )
    );

Register.php

<p>
<label for="login_name">Login *</label>
<input type="text" name="login_name" id="login_name" value="<?php
if (isset($_POST['login_name']) && ! empty($_POST['xx-widget-nonce']) && wp_verify_nonce($nonce, 'xx-widget') ) 
  echo esc_html(sanitize_text_field(wp_unslash($_POST['login_name'])));
?>" required>
<?php
if (isset($_POST['login_name']) && esc_html(sanitize_text_field(wp_unslash($_POST['login_name']))) === '' ) 
    echo '<em class="f_req">' . esc_html__('This field is required', 'xxxx') . '.</em>';

?>
</p>

jQuery 位:

( function( $ ) 

    $( '#form' ).submit( function( e ) 
        e.preventDefault();

        const form = $( this );
        const postData = form.serialize();

        $.ajax( 
            url: parajax.ajax_url,
            type: 'POST',
            data: postData + '&action=ajax_form',
            success( resp ) 
                $( form ).fadeOut( 100, function() 
                    form.html( resp ).fadeIn();
                 );
            ,
         );
     );

( jQuery ) );

【问题讨论】:

我所看到的只是输入登录名的简单回显,这将是进行查找的正确位置 恐怕我听不懂。简单的“回声”来检查数据库的登录值? 【参考方案1】:

所以 Wordpress 自带了这个功能

https://developer.wordpress.org/reference/functions/username_exists/

在您的 register.php 中,您将检查发布的名称,如下所示:

$uname_exists = username_exists($_POST['login_name']);
if(!$uname_exists)
  echo "username not existing yet";
else
  echo "username already existsing!";

【讨论】:

我也发现了这个功能 :) 最初的想法不得不放弃,但类似的想法仍然存在,我使用该功能来检查用户是否存在。它完美无缺:) 谢谢!

以上是关于.submit 上的 jQuery 检查数据库中是不是存在登录并处理表单的主要内容,如果未能解决你的问题,请参考以下文章

模态表单上的 jQuery submit() vc click()

验证复选框输入必须仅由 jquery 检查一个

在提交时检查 jQuery 验证之前的表单提交

jquery submit和ajax提交表单的区别

按钮的ajax请求时,一次点击两次提交的问题

jquery .submit();