2016-05-05 29 views
1

laravel更新形式控制器的代碼是:Ajax請求表示錯誤消息而全成更新用laravel

public function edit(){ 
    $inputValue = [ 
     'id' => Input::get('id'), 
     'name' => Input::get('name'), 
     'parent_id' => Input::get('parent_id'), 
     'color' => Input::get('color'), 
     'description' => Input::get('notes') 
    ]; 

    $validator = \Validator::make($inputValue, \Resource::getEditFolderRules()); 

    // Validate the input and return correct response 
    if ($validator->fails()){ 
     return Response::json([ 
      'success' => false, 
      'errors' => $validator->getMessageBag()->toArray() 
     ]); 
    } 

    $resource = $this->repo->updateFolderBasicDetail($inputValue); 
    return Response::json([ 
     'success' => true, 
     'url' => \URL::route('folder-detail', $inputValue['id']) 
    ]); 
} 

和js是:

<script type="text/javascript"> 
    $(function(){ 
     $("#edit-folder").on('submit', function(e){ 
      e.preventDefault(); 
      if($("#edit-folder").valid() == true){ 
       var description = CKEDITOR.instances.edit_folder_ckeditor1.getData(); 
       $('#notes').val(description); 
       $.ajax({ 
        url: "{{ URL::to('folder/edit') }}", 
        type: "POST", 
        data: $(this).serialize(), 
        dataType: "json", 
        success:function(data) { 
         var errorString = '<ul class="msg msg_unsuccess">'; 
         var success = 'Folder is updated.'; 
         errorString += '<li>' + success + '</li>'; 
         errorString += '</ul>'; 
         $('#sucessmsg').html(errorString).delay(3000).fadeOut(); 
         $('.modal-content').delay(3000).fadeOut(); 
         $('.fade').delay(3000).fadeOut(); 
        }, 
        error:function(data) { 
         var errorString = '<ul class="msg msg_success">'; 
         var error = 'Folder is not updated.'; 
         errorString += '<li>' + error + '</li>'; 
         errorString += '</ul>'; 
         $('#sucessmsg').html(errorString).delay(3000).fadeOut(); 
         $('.modal-content').delay(3000).fadeOut(); 
         $('.fade').delay(3000).fadeOut(); 
         setTimeout(function(){location.reload();},3000); 


        } 
       }); 
      } 
     }); 

    }); 
</script> 

但是當我更新的文件夾被更新並從error:function顯示消息。

不明白我錯在哪裏請幫助我。

+0

不認爲這是問題,但爲什麼是'success'函數中的'msg_unsuccess'類,'error'函數中的類msg_success' ...? – ImClarky

+0

我沒有使用laravel,但你確定你的服務器響應是'json'字符串嗎? – Slim

+0

@slim是的,它是 – user2110253

回答

0

我在Laravel 5.2使用AJAX與路線,創建變量url和可變令牌(如果需要),在PHP文件,其中的觀點,包括前腳本

<script> 
    var token = '{{ Session::token()}}'; 
    var url = '{{ route('select_cafe') }}'; 
</script> 
<script src="{{asset('/script/select_cafe.js')}}" ></script>