javascript - 如何在存储 Laravel 后显示新模式

标签 javascript php jquery laravel

我正在使用 laravel 并使用 Modal 来存储类别 我想要两个单独的按钮来提交新类别 一是“商店” 第二个是“存储并继续”,按下此按钮后我想存储新类别并在重定向后显示新模式

我该怎么做?

这是我的表格

       <div class="modal fade bd-example-modal-xl" id="AddProductCategoryModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog modal-xl" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">افزودن دسته بندی جدید</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body modal-scroll">
                    <form action="{{ route('product-category.store') }}" method="post" class="form-horizontal">
                        @csrf
                        <div class="form-group mb-0">
                            <div class="input-group mt-3">
                                <div class="input-group-prepend"><span class="input-group-text bg-light min-width-140" id="basic-addon7">عنوان دسته بندی :</span></div>
                                <input type="text" class="form-control inputfield" name="name" placeholder="مثال: ورزشی">
                            </div>

                            <div class="input-group mt-3">
                                <div class="input-group-prepend"><span class="input-group-text bg-light min-width-140" id="basic-addon7">توضیحات دسته بندی :</span></div>
                                <input type="text" class="form-control inputfield" name="description" placeholder="مثال: توضیحات مختصری درمورد دسته بندی">
                            </div>
                        </div>
                        <!--end form-group-->
                </div>
                <div class="modal-footer justify-content-between">
                    <button type="button" class="btn btn-danger" data-dismiss="modal">انصراف</button>
                    <div class="group">
                    <button type="submit" class="btn btn-primary">store</button>
                    <button type="submit" class="btn btn-primary">store and continu</button>
                </div>
                </div>

                </form>

            </div>
        </div>
    </div>

这是我的 Controller

public function store(ProductCategoryRequest $request)
{

    if(\Auth::user()->shop()->first()->ProductCategories()->where('name',$request->name)->get()->count() == null){
  $productCategory = new ProductCategory;
$productCategory->name = $request->name;
$productCategory->description = $request->description;
$productCategory->shop_id = \Auth::user()->shop()->first()->id;
$productCategory->save();
alert()->success('دسته بندی جدید شما باموفقیت اضافه شد.', 'ثبت شد');
return redirect()->route('product-category.index');
}
else{
    alert()->error('دسته بندی با این نام قبلا در فروشگاه شما ثبت شده است ', 'خطا');
    return redirect()->route('product-category.index');
    }
}

顺便说一句,我的路线是一个资源

PHP Route::resource('产品类别', 'ProductCategoryController');

最佳答案

处理来自 2 个按钮的提交。为带有 action 的按钮指定一个 name 属性,并指定操作名称的值:

  <div class="modal-footer justify-content-between">
                    <button type="button" class="btn btn-danger" data-dismiss="modal">انصراف</button>
                    <div class="group">
                    <button type="submit" name="action" value="justSave" class="btn btn-primary">store</button>
                    <button type="submit" name="action" value="saveAndContinue" class="btn btn-primary">store and continu</button>
                </div>
                </div>

然后在您的存储方法中检查案例:

    public function store(Request $request)
    {
        switch ($request->input('action')) {
            case 'justSave':

                if(\Auth::user()->shop()->first()->ProductCategories()->where('name',$request->name)->get()->count() == null){
                    $productCategory = new ProductCategory;
                    $productCategory->name = $request->name;
                    $productCategory->description = $request->description;
                    $productCategory->shop_id = \Auth::user()->shop()->first()->id;
                    $productCategory->save();
                    alert()->success('دسته بندی جدید شما باموفقیت اضافه شد.', 'ثبت شد');
                    return redirect()->route('product-category.index');
                }
                else{
                    alert()->error('دسته بندی با این نام قبلا در فروشگاه شما ثبت شده است ', 'خطا');
                    return redirect()->route('product-category.index');
                }

                break;

            case 'saveAndContinue':
                if(\Auth::user()->shop()->first()->ProductCategories()->where('name',$request->name)->get()->count() == null){
                    $productCategory = new ProductCategory;
                    $productCategory->name = $request->name;
                    $productCategory->description = $request->description;
                    $productCategory->shop_id = \Auth::user()->shop()->first()->id;
                    $productCategory->save();
                    session()->flash('flashModal');
                    alert()->success('دسته بندی جدید شما باموفقیت اضافه شد.', 'ثبت شد');
                    return redirect()->route('product-category.index');
                }
                else{
                    alert()->error('دسته بندی با این نام قبلا در فروشگاه شما ثبت شده است ', 'خطا');
                    return redirect()->route('product-category.index');
                }

                break;

        }
    }

在您的 View 中检查 session 并在 session 存在时触发模式:

    @if(session()->has('flashModal'))
        <script>
          $('#YourModalId').modal('show');
        </script>
    @endif

关于javascript - 如何在存储 Laravel 后显示新模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58256496/

相关文章:

php - 使用 mysql php 自动更新图像,我假设 javascript

javascript - Angular2 - 为什么不能在属性名称中使用破折号或其他特殊字符

php - Artisan 正在尝试使用 Ubuntu MySQL 数据库而不是 XAMPP 的

c# - 尝试使用 ajax/jquery 获取所选单选按钮的值

php - 我可以使用 Ruby On Rails 抓取 URL 的源代码,还是应该使用 PHP?

javascript - 从返回的服务器数据更新组件的状态

javascript - 如何在 node.js 中存储和修改大型数据集?

php - Flex - 如何将 Flex DropDownList 的所选项目的 ID 发送到服务器?

javascript - 如何将php变量分配给JS变量

javascript - 谷歌地图标记在相同位置重叠且用户不可见