亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ホームページ バックエンド開発 PHPチュートリアル Laravelで選択後にドロップダウンリストがリセットされる問題を解決する

Laravelで選択後にドロップダウンリストがリセットされる問題を解決する

Oct 17, 2025 am 12:51 AM

Laravel 中下拉列表選擇后重置問題的解決

本文旨在解決 Laravel 應(yīng)用中下拉列表在提交后重置的問題。通過利用 Laravel 的請求對象,我們將演示如何在頁面刷新后保持用戶在下拉列表中選擇的選項,從而提升用戶體驗。文章將提供詳細(xì)的代碼示例和解釋,幫助開發(fā)者輕松實現(xiàn)該功能。

在 Laravel 應(yīng)用中,經(jīng)常會遇到需要在表單提交后保持用戶選擇的下拉列表值的情況。默認(rèn)情況下,頁面刷新會導(dǎo)致下拉列表重置到初始狀態(tài),這會影響用戶體驗。本文將介紹如何利用 Laravel 的請求對象 request() 來解決這個問題,確保頁面刷新后下拉列表仍然顯示用戶上次選擇的選項。

核心思路:利用 request() 對象傳遞和獲取表單數(shù)據(jù)

Laravel 提供了 request() 對象,用于訪問當(dāng)前請求的所有數(shù)據(jù),包括 GET 和 POST 參數(shù)。我們可以利用 request()->input('name') 方法獲取指定名稱的輸入值,并在渲染下拉列表時,根據(jù)這個值設(shè)置 selected 屬性。

實現(xiàn)步驟:

  1. 在視圖中使用 request()->input() 設(shè)置 selected 屬性

    修改下拉列表的 HTML 代碼,使用三元運算符判斷當(dāng)前選項是否與 request()->input('smsstaff_key') 的值相等。如果相等,則添加 selected="selected" 屬性。

    <select name="smsstaff_key" id="smsstaff_key" required>
        @foreach ($staff as $staffMember)
            <option value="{{$staffMember->smsstaff_key}}" {{ request()->input('smsstaff_key') == $staffMember->smsstaff_key ? 'selected="selected"' : '' }}>{{$staffMember->name}}</option>
        @endforeach
    </select>

    代碼解釋:

    • request()->input('smsstaff_key'):獲取名為 smsstaff_key 的輸入值,也就是用戶選擇的 staff member 的 smsstaff_key。
    • $staffMember->smsstaff_key:當(dāng)前循環(huán)遍歷的 staff member 的 smsstaff_key。
    • request()->input('smsstaff_key') == $staffMember->smsstaff_key ? 'selected="selected"' : '':如果兩個值相等,則返回 selected="selected",否則返回空字符串。
  2. 確保 Controller 中正確傳遞數(shù)據(jù)

    在 Controller 中,確保在將數(shù)據(jù)傳遞給視圖時,包含 request()->input('smsstaff_key') 的值。例如:

    public function searching(Request $request)
    {
        $smsstaff_key = $request->input('smsstaff_key');
        $startDate = $request->input('startDate');
        $endDate = $request->input('endDate');
    
        // 獲取符合條件的記錄
        $records = YourModel::where('smsstaff_key', $smsstaff_key)
                            ->whereBetween('date', [$startDate, $endDate])
                            ->get();
    
        // 將數(shù)據(jù)傳遞給視圖
        return view('your_view', compact('staff', 'records', 'startDate', 'endDate', 'smsstaff_key'));
    }

    代碼解釋:

    • $request->input('smsstaff_key'):從請求中獲取 smsstaff_key 的值。
    • compact('staff', 'records', 'startDate', 'endDate', 'smsstaff_key'):將變量 staff, records, startDate, endDate, 和 smsstaff_key 打包成一個數(shù)組,傳遞給視圖。
  3. 避免 undefined array key 錯誤

    之前嘗試使用 JavaScript 來獲取 $_GET['smsstaff_key'] 的方法會報錯,是因為當(dāng)頁面首次加載時,$_GET 數(shù)組中可能不存在 smsstaff_key 這個鍵。使用 Laravel 的 request()->input() 方法可以避免這個問題,因為它會自動處理不存在的鍵,返回 null。

完整示例代碼(視圖):

<form action="{{route('exportVehiclesToExcel')}}" method="GET" >
    <div style="display: flex">
        <div>
            <label>Pick a staff member</label>
            <select name="smsstaff_key" id="smsstaff_key" required>
                @foreach ($staff as $staffMember)
                    <option value="{{$staffMember->smsstaff_key}}" {{ request()->input('smsstaff_key') == $staffMember->smsstaff_key ? 'selected="selected"' : '' }}>{{$staffMember->name}}</option>
                @endforeach
            </select>
            <div style="margin-left: 3px;">
                <button class="btn btn-primary" formaction="searching">Filter by selected staff member</button>
            </div>
        </div>
        <div style="margin-left: 50px;">
            <label>From:</label>
            <input style="width: 14em"  type="date" class="form-control" name="startDate" value="{{ $startDate }}" required>
        </div>
        <div style="margin-left: 20px;">
            <label>To:</label>
            <input style="width: 14em" type="date" class="form-control" name="endDate" value="{{ $endDate }}" required>
        </div>
        <div style="margin-left: 20px;">
            <button class="btn btn-success" formaction="tech/export/" type="submit">Export filtered</button>
        </div>
    </div>
    <div  style="margin-left: 10px;">
        <a href="{{"/techAll/export/"}}" target="_blank" class="btn ">All to Excel</a>
    </div>
</form>

總結(jié):

通過使用 Laravel 的 request()->input() 方法,可以輕松地在頁面刷新后保持下拉列表的選中狀態(tài)。這種方法簡單易懂,并且避免了使用 JavaScript 直接操作 $_GET 數(shù)組可能出現(xiàn)的錯誤。 確保在 Controller 中正確地傳遞數(shù)據(jù),并在視圖中正確地設(shè)置 selected 屬性,就能實現(xiàn)所需的功能,提升用戶體驗。

以上がLaravelで選択後にドロップダウンリストがリセットされる問題を解決するの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Stock Market GPT

Stock Market GPT

AIを活用した投資調(diào)査により賢明な意思決定を?qū)g現(xiàn)

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

メールアドレスがPHPで有効かどうかを確認(rèn)する方法は? メールアドレスがPHPで有効かどうかを確認(rèn)する方法は? Sep 21, 2025 am 04:07 AM

usefilter_var()tovalidateemailsyntaxandcheckdnsrr()toverifydomainmxrecords.example:$ email = "user@example.com"; if($ email、filter_validate_email)

PHPでオブジェクトの深いコピーまたはクローンを作成する方法は? PHPでオブジェクトの深いコピーまたはクローンを作成する方法は? Sep 21, 2025 am 12:30 AM

useunserialize(serialize($ obj))fordeepcopying whenalldataisserializable;それ以外の場合は、__clone()tomaniallyduplicatededededededavoidsharedReferenceを?qū)g裝します。

PHPで2つの配列をマージする方法は? PHPで2つの配列をマージする方法は? Sep 21, 2025 am 12:26 AM

usearray_merge()tocombinearrays、urblitingduplicatestringkeysandreindexingnumerickeys; forsimplerconcatenation、inthphp5.6、usethesplatoperator [... $ array1、... $ array2]。

PHPプロジェクトで名前空間を使用する方法は? PHPプロジェクトで名前空間を使用する方法は? Sep 21, 2025 am 01:28 AM

NamesSpacesInphporganizeCodeandPreventnamingConflictsByGroupingClasses、インターフェイス、関數(shù)、およびコンテンダントアンダースピフィクティフィクティフィクティフィクティフィクショナル

PHPを使用してデータベースでレコードを更新する方法は? PHPを使用してデータベースでレコードを更新する方法は? Sep 21, 2025 am 04:47 AM

toupdateadatabaserecordinphp、firstconnectusingpdoormysqli、thenuseprepreadedStatementStoeaseaseesecuresQlupDateQuery.example:$ pdo = newpdo( "mysql:host = localhost; dbname = your_database"、$ username、$ username、$ sibsfar

PHPの魔法の方法とは何ですか? `__call()`および `__get()`の例を提供します。 PHPの魔法の方法とは何ですか? `__call()`および `__get()`の例を提供します。 Sep 20, 2025 am 12:50 AM

the__call()メソッドは、customhandlingbyacceptingthemetodnameandarguments、ashownwhencollingdsslikesayhello()

PHPでファイル拡張機(jī)能を取得するにはどうすればよいですか? PHPでファイル拡張機(jī)能を取得するにはどうすればよいですか? Sep 20, 2025 am 05:11 AM

usepathinfo($ filename、pathinfo_extension)togetthefileextension; itreliailailavaliavelyhandlesmultipledotsendedgecases、returningtheextension(例えば、 "pdf")oranemptystringifnoneexists。

PHPでファイルのzipアーカイブを作成する方法は? PHPでファイルのzipアーカイブを作成する方法は? Sep 18, 2025 am 12:42 AM

ziparchiveクラスを使用して、zipファイルを作成します。最初にターゲットZIPをインスタンス化して開き、AddFileを使用してファイルを追加し、カスタム內(nèi)部パスをサポートし、再帰関數(shù)はディレクトリ全體をパッケージ化でき、最終的にはPHPに書き込みアクセス許可があることを確認(rèn)するために保存します。

See all articles