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



我有一个自定义WP用户的注册表,其中一个必填字段是LOGIN名称。

表单是用PHP和jQuery两种方式处理的,这两种方式都很好。

我想做的是对照DB检查给定的登录名是否已经存在。

不必是动态的,也可以在提交时进行检查,在那里我会运行另一个PHP脚本,比如"checkUser.PHP",并使用简单的代码:从DB给定的名称中选择,如果存在则返回true(

我真的不知道是应该扩展现有的代码还是找到全新的方法。

欢迎任何意见

Functions.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'),
)
);
}

注册.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 ) );

因此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!";
}

相关内容

  • 没有找到相关文章

最新更新