微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel - 如何在视图刀片中传递值等于输入值的变量?

如何解决Laravel - 如何在视图刀片中传递值等于输入值的变量?

我使用的是 Laravel 5.8。在此刀片中,我有 text input 用户必须填充,然后才能转到其他页面视图,并且必须在该其他页面视图中传递来自该输入的值

这是我的 text input 代码

<input type="text" name="delivery_time" value="">

这是我的 <a> 标记,用于链接到另一个页面

<a href="{{route('manager.invoicePrint',['id' => $restaurant->id,'code' => $inv->id,'delivery' => 'MINUT'])}}" class="btn btn-success btn-block font-weight-bold">Prihvati</a>

所以我已经传递了该变量 delivery 及其值 ' MINUT',但我需要该变量等于用户填充的输入。

这是另一个页面视图的 invoicePrint 函数

/**
* Show the form for creating a new resource.
*
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function invoicePrint($id,$code,$delivery)
{
   $restaurant = Restaurant::find($id);
   $inv = Invoice::findOrFail($code);

   if(Auth::user()->userRestaurants->first()->id != $restaurant->id){
      return redirect()->back();
   }

   return view('website.restaurants.dashboard.invoice-print',compact('restaurant','inv','delivery'));
}

这里我传递了 delivery 变量,并在我的 web.PHP 中:

Route::get('/narudzbina/{id}/{code}/{delivery}','RestaurantsController@invoicePrint')->middleware('auth')->name('manager.invoicePrint');

这个 Route 在两个 Route::group 中。

如何将输入值传递给变量,然后将该变量传递给另一个页面视图(刀片)?

解决方法

输入字段获得一个 id test-input 以便更容易地访问它的值。 此外,我们将生成的路由(没有 {delivery})存储为链接的数据属性。

<a href="/" data-baseroute="/{id}/narudzbina/{code}/" class="btn btn-success btn-block font-weight-bold" id="the-link">Prihvati</a>
 <input id="test-input"/>

为了简单起见,我在这里使用 jQuery。 我们需要在输入字段上注册一个 change 事件处理程序,以便每个键入的字符都需要立即添加到 href 中。请注意,并非所有字符都在 URL 中受支持,因此您需要先清理用户输入。

    $(document).ready(function() {
      $('#test-input').on('change',function(e) {
        var linkElement = $('#the-link');

        // get value user typed in
        var inputFieldValue = e.target.value;
        // compose route using baseRoute (generated by Laravel)
        var baseRoute = linkElement.data('baseroute');
        // set it as href
        linkElement.attr('href',baseRoute + inputFieldValue);
      });
    });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。