Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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 Laravel中的自举模态验证_Php_Html_Ajax_Laravel_Modal Dialog - Fatal编程技术网

Php Laravel中的自举模态验证

Php Laravel中的自举模态验证,php,html,ajax,laravel,modal-dialog,Php,Html,Ajax,Laravel,Modal Dialog,我有一个注册模式,点击打开。使用required等在视图上验证输入。问题是,还有其他字段(也在我没有提到的其他模态中),我在控制器中再次验证规则 我已经读到验证模态的一个好方法是使用AJAX。我很难受 这是我注册模式的简化版本,提交时不使用javascript或其他语言: <div id="RegisterModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hi

我有一个注册模式,点击打开。使用required等在视图上验证输入。问题是,还有其他字段(也在我没有提到的其他模态中),我在控制器中再次验证规则

我已经读到验证模态的一个好方法是使用AJAX。我很难受

这是我注册模式的简化版本,提交时不使用javascript或其他语言:

<div id="RegisterModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
 aria-hidden="true">
<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;  </button>
            <h4 class="modal-title" id="myModalLabel">Register</h4>
        </div>

        <form class="form-horizontal" role="form" method="POST" action="{{ url('/register') }}">
            {!! csrf_field() !!}

            <div class="modal-body">

                <div class="form-group{{ $errors->has('first_name') ? ' has-error' : '' }}">
                    <label class="col-md-4 control-label">First name</label>

                    <div class="col-md-6">
                        <input type="text" class="form-control" name="first_name"
                               value="{{ old('first_name') }}">
                    </div>
                </div>

                <div class="form-group{{ $errors->has('last_name') ? ' has-error' : '' }}">
                    <label class="col-md-4 control-label">Last name</label>

                    <div class="col-md-6">
                        <input type="text" class="form-control" name="last_name"
                               value="{{ old('last_name') }}">
                    </div>
                </div>

                <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                    <label class="col-md-4 control-label">E-Mail Address</label>

                    <div class="col-md-6">
                        <input type="email" class="form-control" name="email"
                               value="{{ old('email') }}">
                    </div>
                </div>

                <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
                    <label class="col-md-4 control-label">Password</label>

                    <div class="col-md-6">
                        <input type="password" class="form-control" name="password">
                    </div>
                </div>

                <div class="form-group{{ $errors->has('password_confirmation') ? ' has-error' : '' }}">
                    <label class="col-md-4 control-label">Confirm Password</label>

                    <div class="col-md-6">
                        <input type="password" class="form-control" name="password_confirmation">
                    </div>
                </div>

            </div>

            <div class="modal-footer">
                <div class="form-group">
                    <div class="col-md-6 col-md-offset-2">
                        <button name="RegisterButton" type="submit" class="btn btn-primary">
                            <i class="fa fa-btn fa-user"></i> Register
                        </button>
                    </div>
                </div>
            </div>
        </form>
    </div>
</div>

&时代;
登记
{!!csrf_field()!!}
名字
姓
电子邮件地址
密码
确认密码
登记

当我提交时,模态关闭,什么也没有发生。如果我再次点击“注册”,模式显示,错误显示


有人能帮我吗?给我指出正确的方向?

据我所知,您正在正常提交表单,这会重新加载页面。因此,在重新加载页面后,您需要再次单击“注册”以打开模式,该模式将正确显示任何错误

如果您希望像这样正常提交表单,如果出现任何错误,您必须自动重新打开模式(使用Javascript)。您可以像这样打开一个模式:

$('#modal').modal({show: true});
我希望我正确地理解了你的问题

编辑1:如果出现错误,要打开模式,请使用以下代码:

@if(Session::has('errors'))
<script>
$(document).ready(function(){
    $('#modal').modal({show: true});
}
</script>
@endif
@if(Session::has('errors'))
$(文档).ready(函数(){
$('#modal').modal({show:true});
}
@恩迪夫
编辑2:通过AJAX提交表单并直接在模式中显示错误:

<?php

public function register()
{
    ...

if($Validator->fails())
{
    $json = new stdClass();
    $json->success = false;
    $json->errors = $Validator->errors();
}
else
{
    $json = new stdClass();
    $json->success = true;
}

return Response::json($json);
}

?>


<script>
$('#registerForm').submit(function(){

var url = {{ route('myRegisterRoute') }};
var data = $('#registerForm').serialize();

$.post(url, data, function(response){
    if(response.success)
    {
        // Print success message and close modal
    }
    else
    {
        $('#registerForm errorList').html(JSON.stringify(response.errors));
    }
});

// return false to stop the normal submission
return false;
});
</script>

$('#registerForm')。提交(函数(){
var url={{route('myRegisterRoute')};
var data=$('#registerForm').serialize();
$.post(url、数据、函数(响应){
if(response.success)
{
//打印成功消息并关闭模式
}
其他的
{
$('#registerForm errorList').html(JSON.stringify(response.errors));
}
});
//返回false以停止正常提交
返回false;
});

是的。这正是我的问题,您的解决方案看起来非常好。我应该将javascript放在哪里?如何使用javascript检查错误?或者更好:是否有方法在提交前验证表单?您可以将该代码放在与模式相同的视图中。有关错误的附加检查,请参见编辑1。提交前意味着要么用Javascript验证,要么通过AJAX提交表单,然后再次用Javascript显示任何错误。两者都有各自的优点和缺点……你能帮我一下代码吗?对我来说,模型在显示错误之前永远不会关闭是非常理想的,但这不是必须的