如何在刀片 laravel 8 中获取选择输入的旧值?

Posted

技术标签:

【中文标题】如何在刀片 laravel 8 中获取选择输入的旧值?【英文标题】:How to get the old value of a select input in blade laravel 8? 【发布时间】:2021-06-02 22:13:36 【问题描述】:

我有一个 Select,当触发 onchange 事件时,这个 Select 可以打开路由,一切正常,但是当新路由打开时,Select 条目初始化并恢复为第一个选项“选择肋骨”。 这是我的代码:

<select name="choose_rib" class="form-control" id="choose_rib" 
        onchange="top.location.href =this.options[this.selectedIndex].value">
    <option value="/rib/app('id')"  old('choose_rib') == 'rib/'.app('id') ? 'selected' : '' > 
        choose something 
    </option>
    
    @foreach ($ribs as $rib)
            <option value="/rib/ $rib->code_rib "   old('choose_rib') == 'rib/'.$rib->code_rib ? 'selected' : ''>
                $rib->desig
            </option>
    @endforeach
</select>

在我的控制器中:

public function goTo(Request $request)
  
    $ribs = DB::select('select desig, rib from myTable');
    return view('show', compact('ribs'));

请帮帮我。

【问题讨论】:

【参考方案1】:

您可以将 option 值与 request()-&gt;route()-&gt;uri 进行比较 - 类似于:

<option value="/rib/ $rib->code_rib "   request()->route()->uri == 'rib/'.$rib->code_rib ? 'selected' : ''>

请注意,使用表单元素进行导航是不好的做法,您可能会发现使用纯 html 链接更容易(如果需要,使用 js 显示/隐藏“下拉菜单”)。

【讨论】:

它不起作用,当我使用 dd(request()->route()->uri) 时,它给我的是“rib/id”而不是当前的 URL,例如“rib/1” 【参考方案2】:

我试过这个 request () -> path () 来获取当前 url 并比较选项值,就像这样(它工作正常):

<option value="/rib/ $rib->code_rib "  request()->path() == 'rib/'.$rib->code_rib ? 'selected' : ''>

【讨论】:

以上是关于如何在刀片 laravel 8 中获取选择输入的旧值?的主要内容,如果未能解决你的问题,请参考以下文章

laravel 刀片中多选选项中的旧值

如何在blade.php中使用vue获取字段的旧值

如何以 laravel 刀片形式生成输入选择并自定义其选项值?

如何从循环中获取值到刀片 - laravel

laravel 5.2 如何在刀片中获取路由参数?

Laravel 5.8刀片,从嵌套对象错误中获取值