首页 > 解决方案 > Laravel:一个表单中的两个动作 - 一个带有“on-change”一个带有按钮?

问题描述

在我的 Laravel 应用程序中,我有一个刀片“插入项目”,我想在 DropDown 更改时从数据库中动态加载 html 数据。更具体地说:我在“猫”表中有几个项目类别(id、名称、代码) - 每个类别需要添加不同的字段,因此我将 html 代码放在“猫”表中。我想实现以下目标:

如果用户选择项目类别,则应显示附加到该类别的 html 代码。

到目前为止我的代码:

<form method="POST" action="{{ route('project-insert') }}">
                  @csrf
                  <form action="{{ route('filter') }}" method="post">
                    <label for="Cat">Kategorie</label>
                        <select class="form-control" name="cat_id" id="cat_id" data-parsley-required="true" onchange='this.form.submit()'>
                            @foreach ($cats as $sn)
                              {
                                  <option value="{{ $sn->id }}">{{ $sn->name }}</option>
                                  }
                            @endforeach
                        </select>
                      </form>
<div class="form-group row mb-0">
                        <div class="col-md-6 offset-md-4">
                            <button type="submit" class="btn btn-primary">
                                {{ __('Add Project') }}
                            </button>
                          </div>
                      </div>
                  </form>

在我的控制器中,我添加了:

  public function insertProject(Request $data) {

    return $data['cat_id'];

}

public function filter(Request $request)
{
  $cat_id = $request->input("cat_id");
  return $cat_id;
  $code = DB::table('cats')->where('id', '=', $cat_id);

  var_dump($code->code);
}

当我更改 DropDown 时,将调用函数“insertProject”而不是所需的函数“filter”。

我怎样才能实现它来调用正确的函数,或者我怎样才能实现它只在按下按钮时才调用“insertProject”?

感谢您的建议和帮助。

斯特凡

标签: phplaravellaravel-5eloquent

解决方案


推荐阅读