в laravel, отправьте форму, используя ajax, тогда как можно написать laravel проверка для нулевого поля? - PullRequest
0 голосов
/ 19 апреля 2020

я так пишу, но не получил

$data = $request->all();

$rules = array('a' => 'required|max:2|digits:2|regex:/^[0-9]+$/');

$messages = array('a.required' => 'sub head number required');

$validator = Validator::make($data, $rules, $messages);

1 Ответ

0 голосов
/ 19 апреля 2020

давайте предположим, что у вас есть форма с этими полями name и email, в вашей функции сделайте что-то вроде этого

public function store(Request $request)
{  
    request()->validate([
    'name' => 'required',
    'email' => 'required|email|unique:users',
    ]);

    $data = $request->all();
    $check = List::insert($data);
    $arr = array('msg' => 'Something goes to wrong. try again', 'status' => false);
    if($check){ 
    $arr = array('msg' => 'Successfully submited', 'status' => true);
    }
    return Response()->json($arr);

}

Список - это модель,

В вашем Blade View:

<form id="contactUs" method="post" action="javascript:void(0)">
  @csrf
  <div class="form-group">
    <label for="formGroupExampleInput">Name</label>
    <input type="text" name="name" class="form-control" id="formGroupExampleInput" placeholder="Please enter name">
    <span class="text-danger">{{ $errors->first('name') }}</span>
  </div>
  <div class="form-group">
    <label for="email">Email Id</label>
    <input type="text" name="email" class="form-control" id="email" placeholder="Please enter email id">
    <span class="text-danger">{{ $errors->first('email') }}</span>
  </div>      
  <div class="form-group">
   <button type="submit" id="send_form" class="btn btn-success">Submit</button>
  </div>
</form>

Маршрут:

 Route::get('index', 'FormController@index');
 Route::post('saveform', 'FormController@store');

В вашем JS файле:

   if ($("#contactUs").length > 0) {
    $("#contactUs").validate({

    rules: {
      name: {
        required: true,
        maxlength: 50
      },
        email: {
                required: true,
                maxlength: 50,
                email: true,
            },    
    },
    messages: {

      name: {
        required: "Please enter name",
        maxlength: "Your last name maxlength should be 50 characters long."
      },
      email: {
          required: "Please enter valid email",
          email: "Please enter valid email",
          maxlength: "The email name should less than or equal to 50 characters",
        },

    },
    submitHandler: function(form) {
     $.ajaxSetup({
          headers: {
              'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
          }
      });
      $('#send_form').html('Sending..');
      $.ajax({
        url: 'http://localhost/saveform' ,
        type: "POST",
        data: $('#contactUs').serialize(),
        success: function( response ) {
            $('#send_form').html('Submit');
            $('#res_message').show();
            $('#res_message').html(response.msg);
            $('#msg_div').removeClass('d-none');

            document.getElementById("contactUs").reset(); 
            setTimeout(function(){
            $('#res_message').hide();
            $('#msg_div').hide();
            },10000);
        }
      });
    }
  })
}
...