【问题标题】:how to set select value after redirecting in Laravel如何在 Laravel 中重定向后设置选择值
【发布时间】:2020-09-21 00:16:41
【问题描述】:

我是 Laravel 的新手,我试图将 select 的值设置为从我的控制器返回的值。我不知道为什么它不会改变价值

show.blade.php

<div class="container d-flex justify-content-center">
    <form action="{{ action('ReportController@show', ['id' => 'month']) }}" class="month-form" method="GET">
        <select name="month" id="month" class="custom-select form-input month-select">
            <option value="01">January</option>
            <option value="02">February</option>
            <option value="03">March</option>
            <option value="04">April</option>
            <option value="05">May</option>
            <option value="06">June</option>
            <option value="07">July</option>
            <option value="08">August</option>
            <option value="09">September</option>
            <option value="10">October</option>
            <option value="11">November</option>
            <option value="12">December</option>
        </select>
        <button class="btn btn-secondary">Generate Report</button>
    </form>
</div>

控制器 函数显示()

$month_number = request('month');
$month_name = date("M", mktime(0, 0, 0, $month_number, 1));
return view('reports.show', compact('month_number', 'month_name'));

This is my form 当我单击生成按钮时,它会返回此页面,该值将是我之前选择的值。因此,如果我选择 May 然后生成按钮,则新页面将是 May 在 select 中,而不是默认值。

编辑:我也尝试过使用 jQuery,但它只会让我的表单空白,根本不会给它任何价值

$(document).ready(function(){
   var month = @json($month_name ?? '');
   $('#month').val(month);
});

【问题讨论】:

  • 重定向后 url 中是否存在 month 变量?您是否在重定向后再次返回此页面,但使用 $month_name 变量?
  • 是的 url 中存在月份变量:“127.0.0.1:8000//monthly-reports/month?month=05”。我可以使用 console.log() 获取数据,但无法更改选择值
  • 我正在发布答案,它可能会对您有所帮助。

标签: php jquery laravel eloquent


【解决方案1】:

如果我清楚地理解你的问题,那么我认为你想要这样的东西

<div class="container d-flex justify-content-center">
<form action="{{ action('ReportController@show', ['id' => 'month']) }}" class="month-form" method="GET">
    <select name="month" id="month" class="custom-select form-input month-select">
        <option value="01" @isset($month_number) {{ $month_number == 01 ? 'selected' : '' }} @endisset>January</option>
        <option value="02" @isset($month_number) {{ $month_number == 02 ? 'selected' : '' }} @endisset>February</option>
        <option value="03" @isset($month_number) {{ $month_number == 03 ? 'selected' : '' }} @endisset>March</option>
        <option value="04" @isset($month_number) {{ $month_number == 04 ? 'selected' : '' }} @endisset>April</option>
        <option value="05" @isset($month_number) {{ $month_number == 05 ? 'selected' : '' }} @endisset>May</option>
        <option value="06" @isset($month_number) {{ $month_number == 06 ? 'selected' : '' }} @endisset>June</option>
        <option value="07" @isset($month_number) {{ $month_number == 07 ? 'selected' : '' }} @endisset>July</option>
        <option value="08" @isset($month_number) {{ $month_number == 08 ? 'selected' : '' }} @endisset>August</option>
        <option value="09" @isset($month_number) {{ $month_number == 09 ? 'selected' : '' }} @endisset>September</option>
        <option value="10" @isset($month_number) {{ $month_number == 10 ? 'selected' : '' }} @endisset>October</option>
        <option value="11" @isset($month_number) {{ $month_number == 11 ? 'selected' : '' }} @endisset>November</option>
        <option value="12" @isset($month_number) {{ $month_number == 12 ? 'selected' : '' }} @endisset>December</option>
    </select>
    <button class="btn btn-secondary">Generate Report</button>
</form>

如果不起作用,请尝试将01 更改为"01" 等等...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-27
    • 2018-11-03
    • 2020-10-05
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 2018-01-13
    相关资源
    最近更新 更多