那么,
我之前的问题让我使用这个脚本:
http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/
由于我完全缺乏知识,我不明白如何在“ajax [ajaxUser]”类中使用“内联AJAX验证”来检查在Wordpress站点中设置新帐户时的用户名可用性。
非常感谢任何帮助。 谢谢!
答案 0 :(得分:0)
最后能够使它发挥作用。
第1步 - 首先获取HTML表单。在输入用户名必须输入的输入字段中,您必须添加要应用于它的验证规则,在我的情况下:
<input type="text" name="user_login" id="user_login" class="validate[required,length[5,15],ajax[ajaxUser]]" value="Username"/>
“required”因为是必填字段,“length [5,15]”有助于缩小搜索范围,“ajax [ajaxUser]”是我们自定义的正则规则。
第2步 - 要访问使用此dbConnector.php的数据库:
<?php
class DbConnector {
var $theQuery;
var $link;
function DbConnector(){
// Get the main settings from the array we just loaded
$host = 'HOST';
$db = 'DATABASE';
$user = 'root';
$pass = 'root';
// Connect to the database
$this->link = mysql_connect($host, $user, $pass);
mysql_select_db($db);
register_shutdown_function(array(&$this, 'close'));
}
//*** Function: query, Purpose: Execute a database query ***
function query($query) {
$this->theQuery = $query;
return mysql_query($query, $this->link);
}
//*** Function: fetchArray, Purpose: Get array of query results ***
function fetchArray($result) {
return mysql_fetch_array($result);
}
//*** Function: close, Purpose: Close the connection ***
function close() {
mysql_close($this->link);
}
}
?>
只需要将值$ host,$ db,$ user和$ pass替换为与您的服务器和数据库对应的值。
步骤3 - 然后创建一个名为validateUser.php的文件,该文件将获取数据库中的值,将它们与输入字段中输入的信息进行比较,并通知验证js的结果。比较
<?php
/* RECEIVE VALUE */
$validateValue=$_POST['validateValue'];
$validateId=$_POST['validateId'];
$validateError=$_POST['validateError'];
/* RETURN VALUE */
$arrayToJs = array();
$arrayToJs[0] = $validateId;
$arrayToJs[1] = $validateError;
include("dbConnector.php");
$connector = new DbConnector();
$query = "SELECT user_login FROM wp_users WHERE user_login = '$validateValue' LIMIT 1";
$result = $connector->query($query);
$num = mysql_num_rows($result);
if($num == 0){ // validate??
$arrayToJs[2] = "true"; // RETURN TRUE
echo '{"jsonValidateReturn":'.json_encode($arrayToJs).'}'; // RETURN ARRAY WITH success
}else{
for($x=0;$x<1000000;$x++){
if($x == 990000){
$arrayToJs[2] = "false";
echo '{"jsonValidateReturn":'.json_encode($arrayToJs).'}'; // RETURN ARRAY WITH ERROR
}
}
}
mysql_close();
第4步 - 完全忘记了这一重要步骤。您必须打开文件jquery.validationEngine-en.js并指定自定义正则表达式规则。 搜索此评论:“//在此处添加正则表达式规则,您可以将电话作为示例”并在其下添加新规则:
"ajaxUser":{
"file":"./wp-content/themes/AtelierMomoni/library/js/validateUser.php",
"alertTextOk":"* Great! This username is available",
"alertTextLoad":"* Loading, please wait",
"alertText":"* Sorry, this username already been taken"},
就是这样!