【问题标题】:Post request with multiples buttons to different functions in the same controller使用多个按钮将请求发布到同一控制器中的不同功能
【发布时间】:2017-02-08 01:59:12
【问题描述】:

我有一个刀片视图。当用户选择一个项目时,模态视图会出现在相同的 HTML 中。

我的模式有 3 个按钮。每个按钮都必须通过 post 请求重定向到我的控制器中的特定功能。

汽车控制器

class CarsControllerextends Controller
{
    index(){
        ...
        return view('cars')->with(['car'=>$response]);
    }

    // execute when the user click on save button
    save(Request $request){
         ...
    }
    // execute when the user click on delete button
    delete(Request $request){
         ...
    }
    // execute when the user click on remove button
    remove(Request $request){
         ...
    }

}

模态

<form role="form" method="POST" action="{{ url('/guardarTurno') }}">
    {{ csrf_field() }}
<!-- 3 hidden inputs to save the id of the item that the user selected ... is the best way?--> 

    <input type="hidden" id="cancha" name="cancha" value=""  class="form-control">
    <input type="hidden" id="fecha" name="fecha" value="{{$agenda['fechaElegida']}}"  class="form-control">
    <input type="hidden" id="hora" name="hora" value=""  class="form-control">
    <button type="submit" class="btn btn-labeled btn-success button-infousuario">
        <span class="btn-label"><i class="fa fa-check fa-fw"></i></span>
        Save
    </button>
    <button type="submit" class="btn btn-labeled btn-warning button-infousuario">
    <span class="btn-label"><i class="fa fa-exclamation-triangle fa-fw"></i></span>
        Delete
    </button>
    <button type="submit" class="btn btn-labeled btn-danger button-infousuario">
        <span class="btn-label"><i class="fa fa-times fa-fw"></i></span>
        Remove
    </button>
</form>

我想要的是:

保存按钮向 save() 方法发出 post 请求

Remove 按钮向 remove() 方法发出 post 请求

删除按钮向 delete() 方法发出 post 请求

三个按钮中的每一个都需要相同的 ID

谢谢!

【问题讨论】:

  • 你注意到 GET、POST、PUT 和 DELETE 等 http 方法了吗?
  • 如果我是你,我会尝试不同的路线来到达具有不同功能的目标控制器。并且,使用 &lt;a href="YourRoute"&gt;Delete&lt;/a&gt;
  • 我不能。是为每个按钮制作的自定义类和自定义逻辑
  • 我认为我无法通过 href 发出帖子请求
  • 当然,我的意思是发布请求仅用于创建新车。

标签: html laravel laravel-5 blade


【解决方案1】:

您必须制作 3 种不同的表格才能发送到 3 个不同的功能。

在您的Save 按钮之后,关闭第一个&lt;/form&gt;

然后为剩余的每个按钮(删除和删除)创建一个新表单。每个表单都有不同的操作

<form action="/remove" method="post"> 
    {{ csrf_field() }}
    <input type='hidden' name='id' value='1' />
    <button type='submit'>Remove</button>
</form>

那么Delete也一样

不要忘记为每个 action='' 定义路由

【讨论】:

  • 但是对于 ech 按钮,我必须用 3 个不同的名称复制 3 个隐藏的输入?
  • 可以保持同名。只是路线必须不同。这是因为你想发帖。使用 GET 会更容易。由于您要发布,请复制隐藏的输入。同名。没关系。它们都是不同的形式
  • 我还看到您的一些隐藏输入具有空值。此外,从隐藏输入中删除class。它们不需要样式,因为它们是不可见的。
  • 我需要发布删除请求吗?我应该改变我的结构吗?我想要最佳做法
  • 用户点击item时inout用jquery填充
猜你喜欢
  • 2019-01-09
  • 1970-01-01
  • 2020-02-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
相关资源
最近更新 更多