Laravel表单带有两个提交按钮

3

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

当前设置

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

我想添加的内容

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

最终结果

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

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

代码

控制器函数

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::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()}}

有什么想法吗?
3个回答

3

已解决

Blade表单

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

控制器

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;
}

希望这能帮助其他人。

0

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

视图:

...

{{ 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...

  }
}

0

你可以使用相同的名称和不同的值属性来定义提交按钮

// 例如:

<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.");
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接