【问题标题】:Laravel form with two submit button带有两个提交按钮的 Laravel 表单
【发布时间】:2018-06-23 04:09:23
【问题描述】:

我的更新表单需要两个提交按钮,

当前设置

目前,当我点击提交时,它会保存我的数据并将我重定向到另一个页面,我可以在其中编辑我的多个图像(所以我的表单就像两步功能)

我要补充的内容

我想添加另一个按钮来保存我的数据并将我返回到索引页面(跳过第二步)

最后结果

最后的结果将是我的带有两个按钮的编辑表单

  1. 按钮 1 保存数据并将我返回到下一个表单以编辑我的图像
  2. 按钮 2 保存数据并将我返回到索引页面

代码

controller function

public function update(Request $request, $id)
    {
      // validation and....

      $product->save();

      // this is my current button action (redirect to second step)
      return redirect()->route('editmultiimages',
          $product->id)->with('success',
          'Product, '. $product->title.' updated, now you can edit images.');

     // need second button action here
}

blade form

{{ Form::model($product, array('route' => array('products.update', $product->id), 'method' => 'PUT', 'files' => true)) }}

// my inputs

// my current button (saves data and goes to next step)
{{ Form::submit('Edit Images', array('class' => 'btn btn-success')) }}

{{Form::close()}}

有什么想法吗?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    已解决

    blade form

    {{ Form::submit('Edit Images', array('class' => 'btn btn-info', 'name' => 'submitbutton')) }}
    {{ Form::submit('Finish', array('class' => 'btn btn-success', 'name' => 'submitbutton')) }}
    

    controller

    switch ($request->submitbutton) {
            case 'Edit Images':
                return redirect()->route('editmultiimages', $product->id)->with('success', 'Product, '. $product->title.' updated, now you can edit images.');
                break;
    
            case 'Finish':
                Session::flash('success', 'Product, '. $product->title.' updated successfully.');
                return redirect()->route('products.index', $product->id);
                break;
    }
    

    希望对他人有所帮助。

    【讨论】:

      【解决方案2】:

      您可以使用两个具有不同值属性的提交按钮。

      查看:

      ...
      
      {{ Form::submit('Edit Images', array('class' => 'btn btn-success','name'=>'btnSubmit', 'value'=>'button1')) }}
      
      {{ Form::submit('Edit Images', array('class' => 'btn btn-success','name'=>'btnSubmit', 'value'=>'button2')) }}
      
      ...
      

      控制器:

      public function update(Request request) {
      
        if(request->get('btnSubmit') == 'button1') {
      
          // do your stuff here...
      
        } else if(request->get('btnSubmit') == 'button2') {
      
          // do your stuff here...
      
        }
      }
      

      【讨论】:

        【解决方案3】:

        您可以为提交按钮使用相同的名称和不同的值属性

        // 示例:

        <input type="submit" class="btn btn-success" value="save and close" name="submitbutton">
        <input type="submit" class="btn btn-success" value="apply" name="submitbutton">
        <input type="submit" class="btn btn-success" value="save and new" name="submitbutton">
        <input type="submit" class="btn btn-success" value="save and search" name="submitbutton">
                    
        

        // 控制器:

        switch($request->submitbutton) {
        
            case 'save and close': 
                //action save here and close
            break;
        
            case 'save and new': 
                //action for save and new
            break;
        
            case 'save and search': 
                //action for save and search
            break;
        
            case 'apply': 
                //action for save and route here
            break;
        }
        

            if ($request->submitbutton == 'apply') {
                return redirect()->route('admin.products.edit', $product->id)->with('success', "new product {$product->name} created as well.");
            } else if ($request->submitbutton == 'save and search'){
                return redirect()->route('admin.products.index', ['name' => $product->name])->with('success', "product {$product->name} saved.");
            } else if ($request->submitbutton == 'save and close'){
                return redirect()->route('admin.products.index')->with('info', "product {$product->name} saved");
            } else if ($request->submitbutton == 'save and new'){
                return redirect()->route('admin.products.create' , $request->category_id)->with('info', "product {$product->name} saved.");
            }
        

        【讨论】:

          猜你喜欢
          • 2020-03-20
          • 1970-01-01
          • 2014-11-25
          • 2014-05-10
          • 1970-01-01
          • 2017-01-05
          • 1970-01-01
          • 2017-04-12
          • 1970-01-01
          相关资源
          最近更新 更多