Laravel Ajax показать сообщение

-1

Я хочу показать сообщение, если ajax был успешным или нет. Код работает до сих пор, но я хотел бы добавить некоторые сообщения.

Моя функция удаления контроллера:

public function destroy(Request $request, $streamID = 0)
{
    $stream = Stream::find($streamID);

    if($stream)
    {
        $stream->delete();
        File::delete($stream->image);
        return redirect()->route('stream.index')->with('success', 'Hooray');
    }
    else
    {
        return redirect()->route('stream.index')->with('success', 'Not Hooray');
    }
}

И часть успеха и ошибки ajax:

        success: function(data) {
            // show message?
        },
        error: function(data) {
            // show message?
        }
  • 0
    А чем могу помочь? Расскажите о функции alert ?
  • 0
    Вы можете использовать Flash данные laravel.com/docs/5.4/session#flash-data
Показать ещё 1 комментарий

3 ответа

1

Вместо перенаправления из вашего php-кода, перенаправляйте из своей функции ajax и отправляйте ответ json на вашу функцию ajax как

public function destroy(Request $request, $streamID = 0)
{
    $stream = Stream::find($streamID);

    if($stream)
    {
        $stream->delete();
        File::delete($stream->image);
        return response() ->json(['code'=>200,'success' => 'Hooray']);
    }
    else
    {
        return response() ->json(['code'=>400,'success' => 'Not Hooray'])
    }
}

и в вашей функции успеха ajax

 success: function(response) {
      alert(response.success);
      window.location.href = 'stream.index';
 },
 error: function(data) {
        // show message?
 }
  • 0
    Как бы вы показали это в стиле флеш-сообщений laravels (прямоугольник с зеленым / красным фоном)
  • 0
    Пробовал твой код не работал
0

Если вы используете загрузчик, добавьте его в любом месте, где вы хотите, чтобы ваше предупреждение отображалось

<div id="ajax-alert" class="alert" style="display:none"></div>

Измените свой сценарий так:

success: function(response){
    If(response.code === 200) {
        $('#ajax-alert').addClass('alert-sucess').show(function(){
            $(this).html(response.success);
        });
    }
    If(response.code === 400){
        $('#ajax-alert').addClass('alert-danger').show(function(){
            $(this).html(response.success);
        });
    }
}, 
error: function(data) { 
    alert ('Ajax run unsuccessful');
 }
0

Я обновил предыдущий ответ на это:

    ....
    if($stream) { 
       $stream->delete(); 
       File::delete($stream->image);
       return response()->json(['code'=>200,'success' => 'Hooray'],200); 
} 
     else { 
          return response()->json(['code'=>400,'success' => 'Not Hooray'],200);
    } 
  • 0
    Привет, но где / как мне добавить сообщение об успехе в ajax?
  • 0
    @utdev Я разместил ответ на ваш комментарий, надеюсь, это поможет

Ещё вопросы

Сообщество Overcoder
Наверх
Меню