【问题标题】:jquery Validation engine. Ajax error 200 parsererrorjquery 验证引擎。 Ajax 错误 200 解析器错误
【发布时间】:2013-12-04 15:54:21
【问题描述】:

我正在尝试使用 ajaxNameCallPhp 检查我的数据库中是否已存在用户名。我以前从未使用过它,所以我努力让它工作。当我在我的用户名字段中输入一个已经存在的用户名时,它只显示“正在验证,请稍候”。查看 firebug,我可以看到 Ajax 错误:正在显示 200 parsererror。

members.php 中的代码 sn-p

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]'
                },

其他字段的验证工作正常,只是用户名失败。

jquery.validationEngine-en.js

"ajaxNameCallPhp": {
                    "url":"ajaxValidateFieldName.php",
                    "alertText": "* This name is already taken",
                    "alertTextLoad": "* Validating, please wait"
                },

我的 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]。抱歉,我之前从未使用过此功能

【问题讨论】:

  • parseerror 表示您的 json 无效。向我们展示 json。
  • @KevinB 对不起,这对我来说是新的,哪个部分是 json?
  • 来自您请求的脚本的响应。
  • @KevinB 再次查看我的虚拟机上的代码后,我得到了一个回显,以显示返回的行数。一旦我将其注释掉,我不再收到解析器错误,但用户名字段仍然只显示“正在验证,请稍候”,萤火虫中没有显示任何错误,响应窗口中显示的所有内容是:[“AndAda52”,false] AndAda52 是我输入的重复用户名
  • 你的javascript在哪里?

标签: php ajax jquery jquery-validation-engine


【解决方案1】:

ajaxValidateFieldName.php 文件需要与 validateEngine 脚本文件位于同一目录中。需要将 ajax 文件中的 if 语句从 (if($count=0)) 更改为 (if($count==0))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多