Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在弹出式登录时验证Codeigniter表单_Php_Codeigniter - Fatal编程技术网

Php 在弹出式登录时验证Codeigniter表单

Php 在弹出式登录时验证Codeigniter表单,php,codeigniter,Php,Codeigniter,我想在弹出式登录窗口中使用CodeIgniter上的表单验证库,当出现错误时,我想在弹出式窗口中回显验证错误 if ($this->form_validation->run()==FALSE){ $this->load->view("header"); $this->load->view("menu"); $this->load->view("content"); } 因为当错误发生时,视图将重新加载,弹出窗口将关闭 有没

我想在弹出式登录窗口中使用CodeIgniter上的表单验证库,当出现错误时,我想在弹出式窗口中回显验证错误

if ($this->form_validation->run()==FALSE){
    $this->load->view("header");
    $this->load->view("menu");
    $this->load->view("content");
}
因为当错误发生时,视图将重新加载,弹出窗口将关闭 有没有办法在出现错误时打开我的弹出窗口?

只需使用jQuery.validate()并匹配同一组规则,您希望它的工作方式会太复杂。您必须提交表单,刷新页面,然后在出现错误时打开弹出窗口。有点。。。错


参考资料:

对于表单验证的返回,您可以执行以下操作:

        $this->output->set_output(json_encode([
            'result' => 0,
            'error' => $this->form_validation->error_array()
        ]));

        return false;
    }
<!-- Javascript POST -->
<script type="text/javascript">
    $(function() {

        $("#login_error").hide();
        // Check the login form, so your form name may vary
        $("#login_form").submit(function(evt) {
            evt.preventDefault();
            var url = $(this).attr('action');
            var postData = $(this).serialize();

            // Grab the post data
            $.post(url, postData, function(o) { 
                if (o.result == 1) {
                    // Redirect for successful loging
                    window.location.href = '<?=site_url('pageheretogoto')?>';
                } else {

                $("#login_error").show(); // Show your popup window, I'm showing a div here of #login-error
                var output = '<ul>'; // Format the output into a list
                for (var key in o.error) {
                    var value = o.error[key];
                    output += '<li>' + value + '</li>';
                }
                output += '</ul>';
                $("#login").html(output); // Modify the html output for the #login div which you would probably change it to your pop-up.
                }

            }, 'json');

        });

    });
</script>
它将返回您的需求以及错误,然后在jQuery中执行如下操作:

        $this->output->set_output(json_encode([
            'result' => 0,
            'error' => $this->form_validation->error_array()
        ]));

        return false;
    }
<!-- Javascript POST -->
<script type="text/javascript">
    $(function() {

        $("#login_error").hide();
        // Check the login form, so your form name may vary
        $("#login_form").submit(function(evt) {
            evt.preventDefault();
            var url = $(this).attr('action');
            var postData = $(this).serialize();

            // Grab the post data
            $.post(url, postData, function(o) { 
                if (o.result == 1) {
                    // Redirect for successful loging
                    window.location.href = '<?=site_url('pageheretogoto')?>';
                } else {

                $("#login_error").show(); // Show your popup window, I'm showing a div here of #login-error
                var output = '<ul>'; // Format the output into a list
                for (var key in o.error) {
                    var value = o.error[key];
                    output += '<li>' + value + '</li>';
                }
                output += '</ul>';
                $("#login").html(output); // Modify the html output for the #login div which you would probably change it to your pop-up.
                }

            }, 'json');

        });

    });
</script>

$(函数(){
$(“#登录错误”).hide();
//检查登录表单,因此表单名称可能会有所不同
$(“#登录表格”)。提交(功能(evt){
evt.preventDefault();
var url=$(this.attr('action');
var postData=$(this.serialize();
//获取post数据
$.post(url、postData、函数(o){
如果(o.result==1){
//重定向以成功登录
window.location.href='';
}否则{
$(“#登录错误”).show();//显示您的弹出窗口,我在这里显示一个#登录错误的div
var output='
    ';//将输出格式化为列表 for(o.error中的var键){ var值=o.错误[键]; 输出+='
  • '+值+'
  • '; } 输出+='
'; $(“#login”).html(输出);//修改#login div的html输出,您可能会将其更改为弹出窗口。 } }“json”); }); });

您需要确保修改div名称,但这将为您提供一个很好的起点:1)无需页面刷新,2)将内容放置在您想要的位置。该示例没有使用弹出窗口或模式框,但您可以轻松地对其进行调整。

非常感谢,我将立即尝试您的建议!