2015-11-13 30 views
6

Sau khi yêu cầu ajax thành công, tôi muốn gửi thông báo flash đến chế độ xem của mình (Ví dụ: khi chỉnh sửa, tôi muốn chuyển hướng người dùng đến trang chủ bằng $ flash = "Cửa hàng của bạn đã được cập nhật"). Trong bộ điều khiển, nó rất dễ dàng nhưng tôi không biết phải làm gì trong JavaScript. Có ai trong số các bạn biết cách tìm ra nó không? Im sử dụng Laravelhiển thị đèn flash và thông báo lỗi sau khi yêu cầu ajax Laravel

khiển

public function postUpdate (Request $request) 
    { 
      $this->validate($request, [ 
       'website_name' => 'required', 
       'website_url' => 'required', 
       'category' => 'required', 
       'type' => 'required', 
       'sells' => 'required', 
       'location' => 'required', 
       'description' => 'required', 
       'payment' => 'required' 
      ]); 
      Shop::where('username', '=', Auth::user()->username)->update(['website_name' => Input::get('website_name'), 
       'website_url' => Input::get('website_url'), 'type' => Input::get('type'), 'category' => Input::get('category'), 'sells' => Input::get('sells'), 'location' => Input::get('location'), 
       'payment' => Input::get('payment'), 'description' => Input::get('description')]); 
     return Response::json(['message' => 'Success', 'message_class' => 'alert alert-success fade in']); 
    } 

AJAX

$(".update-form").submit(function(s){ 

      s.preventDefault(); 

      var website_name = $('input[name=website_name]').val(); 
      var website_url = $('input[name=website_url]').val(); 
      var type = $('#type option:selected').val(); 
      var category = $('#category option:selected').val(); 
      var sells = $('input[name=sells]').val(); 
      var location = $('input[name=location]').val(); 
      var payment = $('input[name=payment]').val(); 
      var description = $("textarea#message").val(); 

       $.ajax({ 
       type: "POST", 
       url: "advertiser/update", 
       data: { 
        _token: token, website_name: website_name, website_url: website_url, type: type, category: category, sells: sells, location: location, payment: payment, description: description 

       }, 

       success: function() { 
        $('.modal-backdrop').remove(); 
        $('body').load('advertiser') 

       }, 

       error: function(data) { 
        $('body').load('advertiser') 

       } 
         }) 


     }); 

HTML

<div class="row" id="errors"> 
      @if (Session::has('message')) 
       <div class="{!! Session::get('message_class') !!}"> 
        <a href="#" class="close" data-dismiss="alert">&times;</a> 
        <strong>Note!</strong> {!! Session::get('message') !!} 
       </div> 
      @endif 

      @if($errors->has()) 
       <div class="alert alert-danger fade in"> 
        <a href="#" class="close" data-dismiss="alert">&times;</a> 

        <p>the following errors have occured:</p> 
        <ul> 
         @foreach($errors->all() as $error) 
          <li>{{$error}}</li> 
         @endforeach 
        </ul> 
       </div> 

      @endif 
+0

Bạn muốn chuyển hướng trang sau khi nhận được kết quả ajax? –

+0

không có tôi đã thay đổi để Respone :: json Tôi muốn biết làm thế nào để có được dữ liệu trong javascript (jquery) @sulthanAllaudeen –

+0

@Juam Đăng câu trả lời, Bạn muốn kịch bản đầy đủ trong Jquery? –

Trả lời

3

Bạn không thể chuyển hướng bộ điều khiển bên trong nếu bạn sử dụng yêu cầu ajax.

Nhưng bạn có thể làm như thế này.

Gửi một số thông số trong điều khiển như

$Response = array(
      'success' => '1', 
     ); 

hoặc

$Response = array(
      'success' => '0', 
      'error' => 'Your Flash Message' 
     ); 

này và gửi lại return $Response;

Sau đó, Trong kết quả ajax bạn có thể chuyển hướng người dùng như

này
if (data.success == 1){ 
    window.location = 'toyourdesiredpath'; 
} 
else 
{ 
//show your error message in your div or span 
} 
+1

Điều này sẽ không hiển thị thông báo mặc dù, bạn vẫn sẽ cần phải thiết lập phiên. – Keet

0

Bạn phải sử dụng chuyển hướng wit h, hãy thử ví dụ sau trong mã của bạn: -

return Redirect :: to ('user/login') -> with ('message', 'Login Failed');

+0

return Redirect :: to ('nhà quảng cáo') -> với (['message' => 'Success', 'message_class' => 'alert alert-success fade in']); không hoạt động nếu tôi xóa ajax hoạt động của nó ... –

+1

thực hiện một điều trả về một số trạng thái như json và sau đó thành công ajax, bạn có thể hiển thị thông báo thành công đó –

+0

return Response :: json hoặc return json_encode Tôi không biết cách nhận được nó bằng cách sử dụng javascript bạn có thể cho tôi một ví dụ xin cảm ơn bạn :) –

Các vấn đề liên quan