im试图使用ajaxNameCallPhp来检查我的数据库中是否已经存在用户名。我以前从来没有用过这个,所以我很难让它发挥作用。当我在用户名字段中输入一个已经存在的用户名时,它只显示"正在验证,请稍候"。通过查看firebug,我可以看到一个Ajax错误:显示了200个parserror。
members.php 的代码片段
userName: {
title: 'User Name',
list: false,
width: '15%',
inputClass: 'validate[required,custom[onlyLetterNumber],maxSize[20],ajax[ajaxNameCallPhp]]'
},
FirstName: {
title: 'First Name',
width: '20%',
inputClass: 'validate[required]'
},
LastName: {
title: 'Last Name',
width: '20%',
inputClass: 'validate[required]'
},
password: {
title: 'Password',
list: false,
type: 'password',
width: '20%',
inputClass: 'validate[required]'
},
其他字段的验证工作正常,只是userName失败。
jquery.validationEngine-en.js
"ajaxNameCallPhp": {
"url":"ajaxValidateFieldName.php",
"alertText": "* This name is already taken",
"alertTextLoad": "* Validating, please wait"
},
my ajaxValidateFieldName.php:
<?php
include('dbConnect.php');
/* RECEIVE VALUE */
$validateValue=$_REQUEST['fieldValue'];
$validateId=$_REQUEST['fieldId'];
$validateError= "This username is already taken";
$validateSuccess= "This username is available";
/* RETURN VALUE */
$arrayToJs = array();
$arrayToJs[0] = $validateId;
$sql_checkusername = "SELECT userName FROM tiptop_user WHERE userName = '$validateValue'";
$result=mysql_query($sql_checkusername );
$count=mysql_num_rows($result);
if($count=0){
$arrayToJs[1] = true; // RETURN true
echo json_encode($arrayToJs); // RETURN ARRAY username is available
}
else {
for($x=0;$x<1000000;$x++){
if($x == 990000){
$arrayToJs[1] = false;
echo json_encode($arrayToJs);
}
}
}
?>
当我调试时,我可以看到count=1,并返回以下内容:["AndAda52",false]。Appologise我在之前从未使用过此功能
ajaxValidateFieldName.php文件需要与validateEngine脚本文件位于同一目录中。ajax文件中的If语句需要从(If($count=0))更改为(If($count=0))