2016-11-04 63 views
1

我使用Laravel 5.我在OrganisationsController我有一个方法的addItem如何用ajax Laravel进行验证5.3

public function addItem(Request $request) 
 
    { 
 
     $rules = array(
 
      'nom' => 'required', 
 
     ); 
 
     // for Validator 
 
     $validator = Validator::make(Input::all(), $rules); 
 
     if ($validator->fails()) 
 
      return Response::json(array('errors' => $validator->getMessageBag()->toArray())); 
 

 
     else { 
 
      $section = new Section(); 
 
      $section->nom = $request->nom; 
 
      $section->save(); 
 
      return response()->json($section); 
 
     } 
 
    }

Ajax代码

$("#add").click(function() { 
 
      $.ajax({ 
 
       type: 'post', 
 
       url: '/addItem', 
 
       data: { 
 
        '_token': $('input[name=_token]').val(), 
 
        'nom': $('input[name=nom]').val() 
 
       }, 
 
       success: function(data) { 
 
        if ((data.errors)) { 
 
         $('.error').removeClass('hidden'); 
 
         $('.error').text(data.errors.title); 
 
         $('.error').text(data.errors.description); 
 
        } else { 
 
         $('.error').remove() 
 
         $('table').append("<tr class='section" + data.id + "'><td>" + data.id + "</td><td>" + data.nom + "</td><td><button class='edit-modal btn btn-info' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-edit'></span> Edit</button> <button class='delete-modal btn btn-danger' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-trash'></span> Delete</button></td></tr>"); } 
 
        } 
 
       }); 
 

 
      $('#noom').val(''); 
 
     });

HTML代码

<div class="form-group row add"> 
 
    <div class="col-md-5"> 
 
     <input type="text" class="form-control " id="noom" name="nom" 
 
       placeholder="New section here" required> 
 
\t \t <p class="error text-center alert alert-danger hidden"></p> 
 
    </div> 
 
    <div class="col-md-2"> 
 
     <button class="btn btn-warning" type="submit" id="add"> 
 
      <span class="glyphicon glyphicon-plus"></span> Add new Section 
 
     </button> 
 
    </div> 
 

 
</div>

我不知道为什么我的验证无法正常工作。请为此提供一个示例。我正在使用laravel 5.我搜索了很多网站。但我无法得到解决方案。

回答

1

如果您的验证失败,它将返回一个状态代码(错误代码)422

在您的$.ajax中,您只使用success,如果验证失败,则不会调用它。

您将需要添加一个错误方法到你的ajax选项。使用你的上面的代码,你会有这样的:

success: function (data) { 
    $('.error').remove() 
    $('table').append("<tr class='section" + data.id + "'><td>" + data.id + "</td><td>" + data.nom + "</td><td><button class='edit-modal btn btn-info' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-edit'></span> Edit</button> <button class='delete-modal btn btn-danger' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-trash'></span> Delete</button></td></tr>"); 
}, 
error: function (data) { 
    if (data.errors) { 
     $('.error').removeClass('hidden'); 
     $('.error').text(data.errors.title); 
     $('.error').text(data.errors.description); 
    } 
} 

希望这会有所帮助!

+0

它仍然在同一个问题:( – meduprise

+0

我发现** **溶液!!! 溶液是删除的条件**如果( data.errors)** **感谢您的帮助** – meduprise

1

溶液是删除的条件,如果(data.errors)