Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
引导模式、jquery ajax表单验证和laravel中的db插入_Ajax_Modal Dialog_Laravel - Fatal编程技术网

引导模式、jquery ajax表单验证和laravel中的db插入

引导模式、jquery ajax表单验证和laravel中的db插入,ajax,modal-dialog,laravel,Ajax,Modal Dialog,Laravel,我正在尝试使用引导模式,使用finally db insert进行实时电子邮件检查和验证。我看了好几本教程,但不能把它们全部放在一起。我有0个js技能。我有一个模式中的表单,它以正常的laravel方式提交和验证。唯一的问题是,如果它有错误,我们会在页面刷新时看到消息,而不是在模式中:( 我在一篇文章中添加了一些ajax内容,使我的表单能够在不刷新的情况下将数据提交到数据库中。:)但是我无法确定如何在插入时正确返回错误和成功消息。到目前为止,唯一有效的错误是必填字段,颜色编码为红色,但没有显示任

我正在尝试使用引导模式,使用finally db insert进行实时电子邮件检查和验证。我看了好几本教程,但不能把它们全部放在一起。我有0个js技能。我有一个模式中的表单,它以正常的laravel方式提交和验证。唯一的问题是,如果它有错误,我们会在页面刷新时看到消息,而不是在模式中:(

我在一篇文章中添加了一些ajax内容,使我的表单能够在不刷新的情况下将数据提交到数据库中。:)但是我无法确定如何在插入时正确返回错误和成功消息。到目前为止,唯一有效的错误是必填字段,颜色编码为红色,但没有显示任何消息

我想达到的是这一点,但在一个模式

这是我目前掌握的代码:

形式

控制器:

if(Request::ajax()) {
            $rules = [
                'f_name'        => 'required',
                'l_name'        => 'required',
                'user_number'   => 'required',
                'email'         => 'required|email',
                'gender'        => 'required',
                'campus'        => 'required',
                'status'        => 'required',
                'contractor'    => 'required',
                'password'      => 'required',
            ];

            $validation = Validator::make(Input::all(),$rules);

$response = ["error" => ['error'=>'true','status'=>'Sorry there has been an error'],
"success" => ['success'=>true,'message'=>'The new staff member was successfully added to the system']
            ];

            if($validation->fails())
            {
                return Response::json($response["error"]);
            }
            else
            {

 $user = User::find_by_email(Input::get('email'));
 if($user) {
   // send a message back via ajax that the email already exists
   if($user) {
    return Redirect::back()->with_input()
        ->with('status','The email address is already in use');
    }
 }

      $staff = new User(array( 
      'f_name'                  => Input::get('f_name'), 
      'l_name'                  => Input::get('l_name'), 
      'user_number'             => Input::get('user_number'), 
      'username'            => Input::get('username'), 
      'email'               => Input::get('email'),
      'password'                => Hash::make(Input::get('password')),
      'status'              => Input::get('status'),
      'gender'              => Input::get('gender'),    
      ));$staff->save();

  // Automatically create a profile for the new staff member
   $staff_profile = new Profile(array(
   'user_id'            => $teacher->id, 
   'contractor'         => Input::get('contractor'),
   'campus'             => Input::get('campus'),
                ));
  $staff_profile->save();

   return Response::json($response["success"]);

  }
        }
JQuery

 $('#add_staff').submit(function(){
    var datas = $(this).serialize();
    url = $(this).attr('action');

    $.ajax({
        type: 'POST',
         url: url,
         data: datas,
         dataType: 'JSON',
         success: function(msg,status){
            if(msg.error)
            {
                $(f_name).removeClass('required');
                $(f_name).addClass('required field error');
                $(l_name).removeClass('required');
                $(l_name).addClass('required field error');
                $(user_number).removeClass('required');
                $(user_number).addClass('required field error');
                $(email).removeClass('required');
                $(email).addClass('required field error');
                $(gender).removeClass('required');
                $(gender).addClass('required field error');
                $(campus).removeClass('required');
                $(campus).addClass('required field error');
                $(status).removeClass('required');
                $(status).addClass('required field error');
                $(contractor).removeClass('required');
                $(contractor).addClass('required field error');
                $(password).removeClass('required');
                $(password).addClass('required field error');

            }
            else if(msg.success)
            {
                $("#succesful_message").html(msg);
                clearInput();

            }
        }
    });
    return false;
});

function clearInput() {
$("#add_staff :input").each( function() {
    $(this).val('');
});
}

如果有任何信息能为我指明正确的方向,我们将不胜感激,谢谢。我注意到的第一件事是您需要添加以下内容:

$('#add_staff').submit(function(e){
    e.preventDefault();
    ...
}

这样您的表单就不会刷新页面。

我注意到的第一件事是您需要添加以下内容:

$('#add_staff').submit(function(e){
    e.preventDefault();
    ...
}

这样你的表单就不会刷新页面。

谢谢你的提示,我认为返回值是假的;最后,返回:false;而不是e.preventDefault();在大多数情况下,这是非常糟糕的做法。提供return:false类似于执行e.preventDefault();e、 停止传播();谢谢你的提示,我以为退货是假的;最后,返回:false;而不是e.preventDefault();在大多数情况下,这是非常糟糕的做法。提供return:false类似于执行e.preventDefault();e、 停止传播();