показать сообщение после отправки формы laravel - PullRequest
0 голосов
/ 20 января 2020

привет, я новичок в Laravel Я хочу использовать sweetalert2 на моем Laravel веб-сайте, но он не отображается в представлении

Я использую ветку dist из Github

так что в моем **master_layout.blade.php** это мой код:

<!DOCTYPE html>
<html>
<head>
    <meta charest="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>@yield('title')</title>
    <link href="https://fonts.googleapis.com/css?family=Cairo&display=swap" rel="stylesheet">
    <link href="css/all.min.css" rel="stylesheet" type="text/css">
    <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css">
    <link href="css/jquery-ui.min.css" rel="stylesheet" type="text/css">
    <link href="css/jquery-ui.theme.min.css" rel="stylesheet" type="text/css">
    **<link href="css/sweetalert2.min.css" rel="stylesheet" type="text/css">**
    <link href="css/main_style.css" rel="stylesheet" type="text/css">
    <link href="css/responsive.css" rel="stylesheet" type="text/css">
    <link rel="icon" type="image/png" href="img/favorite-icon.png" />
</head>
<body>
    @include('include/Navbar')
    <main>

        @include('include/Sidebar')

        @include('include/HamburgerSidebar')

        <div class="container">
            @yield('Content')
        </div>
    </main>

    <script src="Js/jquery-3.4.1.min.js"></script>
    <script src="Js/popper.min.js"></script>
    <script src="Js/bootstrap.min.js"></script>
    <script src="Js/jquery-ui.min.js"></script>
    **<script src="Js/sweetalert2.all.min.js"></script>**
    <script src="Js/main-JQ.js"></script>
</body>
</html>

и в моем магазине контроллеров:

public function store(Request $request)
    {
        $request_order=$request->section_order;
        if(empty($request_order)){
            $order_last = Section::latest('section_order')->get();
            if(empty($order_last)){
                $request_order=1;
            }else{
                $request_order=$order_last[0]['section_order']+1;
            }
        }

        $request->validate([
            'section_name' => ['required','min:3'],
            'section_pic' =>['image']
        ]);

        $image = $request->file('section_pic');

        if ( $image === null) {
            $image_name = 'default_img.jpg';
        }else{
            $image_name = rand(1, 20) . time() . $image->getClientOriginalName();
            $image->move(public_path('img'),$image_name);
        }

        $input_data = array(
        'section_order' => $request_order,
        'section_name' => $request->section_name,
        'section_pic' => $image_name
        );

        Section::create($input_data);

            return redirect('/Sections')->withSuccess('Success message');
    }

и на мой взгляд:

@if(Session::has('success'))
<script type="text/javascript">
   Swal.fire(
           'Good job!',
           'Successfully Saved!',
           'success'
   );
</script>
@endif

функция хранилища работает нормально, но на мой взгляд не отображает подсластитель

, и я помещаю все папки с файлами и изображениями CSS и js в папку publi c, это правильно или нет?

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Контроллер:

  session()->flash("success","Success Message");
  return redirect('/Sections');

Файл Blade

@if(session()->has('success'))
    <script type="text/javascript">
        $(function () {
            swal("Deleted!", "Data has been Deleted.", "success"),
                swal({
                    title: {{ session()->get('success') }},
                    text: "Your Custom or Dynamic SUccess message put here",
                    type: "success"})

        });
    </script>
@endif
0 голосов
/ 20 января 2020

благодаря @ Джозефу его комментарий решил мою проблему, я использую window.onload, и он отлично работает

@if(Session::has('success'))
  <script type="text/javascript">

  function massge() {
  Swal.fire(
            'Good job!',
            'Successfully Saved!',
            'success'
        );
  }

  window.onload = massge;
 </script>
@endif
...