【问题标题】:FIXED jQuery Validate + php check user exits固定 jQuery Validate + php 检查用户退出
【发布时间】:2014-10-20 22:52:53
【问题描述】:

我正在尝试添加一个通过 jQuery validate 验证的表单,以及一个我检查用户 (usuario) 是否退出的 PHP 脚本。每个用户都有不同的文件夹。为了检查用户是否退出,我检查文件夹是否存在,如果存在,告诉有错误,我不想停止提交表单。如果没有,我使用用户名创建子文件夹并创建文件夹。

目前我使用的是AJAX解决方案,但是PHP没有执行,也不会打印任何回显。 我一直在阅读有关 AJAX 和 jQuery validate 中远程属性的更多信息,但我无法让我的功能发挥作用。

使用 Ajax(或者我理解为 ajax)

submitHandler: function(form) {
              var username = $(this).val();
              $.post('check_user.php', {'usuario':username}, function(data) { 
                  $("#user-result").html(data); 
                  form.submit();
              });
 }

带遥控器

"usuario":{
         required: true,
         rangelength: [3, 10],
         remote: {
                url: "check-user.php",
                type: "get",
                data:{
                    usuarios: function(){
                       return $('#usuario').val();
                    }
                }
         }
}

我的 PHP

<?php
    $user = $_REQUEST['usuario'];
    $dir = "usuarios/$user";
    if (!file_exists($dir)) {
        echo 'true';
    } else {
        if(!mkdir($dir, 0777, true)) {
            echo 'Fallo al crear las carpetas...'
        }   
        $doc = new_xmldoc('1.0');
        $root = $doc->add_root('historial');
        $fp = @fopen('historial.xml','w');
        if(!$fp) {
            echo 'Fallo al crear historial.xml'
        }
        fwrite($fp,$doc->dumpmem());
        fclose($fp);
        echo 'true';
    }
 ?>

我的表单片段 (HTML)

<form id="register" action="index.php" method="post" onsubmit="return validateForm();">
    <div class="elRegister"><label>Usuario:</label>
    <input name="usuario" id="usuario" type="text" size="16"></div>

更新: 正确关闭括号我仍然遇到问题。规则很好但是在正确填写我的表格后,当我按下提交按钮时它什么也没有。如果我的表单中有问题,它将正确显示错误。 我的脚本将具有以下结构:

<script type="text/javascript">
    (function($, W, D) {
        var validaForm = {};
        validaForm.UTIL =
                {
                    setupFormValidation: function()
                    {
                        //Reglas de validacion
                        $("#register").validate({
                            debug:true,
                            rules: {
                            },
                            messages: {
                            },
                            submitHandler: function(form) {
                                var username = $(this).val();
                                $.post('check_user.php', {'usuario':username}, function(data) {
                                    $("#user-result").html(data);
                                    form.submit();
                                });
                            }
                        });
                    }            
                }
        $(D).ready(function($) {
            validaForm.UTIL.setupFormValidation();
        });

    })(jQuery, window, document);
</script>

感谢您所做的一切,如果您需要我的代码的更多内容,请直接询问。

已修复 最后我已经能够解决这个问题。我在这里找到了解决方案:YouTube 解决方案是同时使用 ajax 和远程规则。使用远程规则,我检查用户是否存在,并使用 ajax 覆盖表单提交并编写另一个,如下所示:

$("#register").submit(function() {
        var valido = $("#register").valid(); 

        if(valido){
            var $inputs = $('#register :input');

            // not sure if you wanted this, but I thought I'd add it.
            // get an associative array of just the values.
            var values = {};
            $inputs.each(function() {
                values[this.name] = $(this).val();
            });
            alert("Formulario valido");

            $.get("crear_usuario.php",values);
        }  
        else{
            alert("Formulario no valido");
        }
    });

感谢您的回答!

【问题讨论】:

  • 您的提交处理程序未关闭。您在回调结束后缺少);}

标签: javascript php jquery ajax forms


【解决方案1】:

您没有正确关闭 submitHandler。这是固定代码。

submitHandler: function(form) {
    var username = $(this).val();
    $.post('check_user.php', {'usuario':username}, function(data) { 
        $("#user-result").html(data); 
        form.submit();
    });
}

【讨论】:

  • 感谢@Bijan 已修复。仍然无法正常工作,但现在领先一步。我已经更新了代码,以便提供更多视角
猜你喜欢
  • 1970-01-01
  • 2015-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多