簡體   English   中英

如何將值從輸入表單傳遞到laravel中的另一個頁面

[英]how to pass value from input form into another page in laravel

對不起,我是新來的Laravel學習者,我對從表單輸入中顯示數據值有問題。 我有create.blade.php:

@extends('layouts.master')

@section('content')

<div class="container">
    <div class="header">
        <h1><b>Create an account</b></h1>
        <h5>Welcome to Konoha Village</h5>
    </div>
    {{ csrf_field() }}

    @if(isset($name))
    <div class="alert alert-warning alert-dismissible" role="alert">
        Halo <strong>{{$name}}</strong>
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">$times;</span>
        </button>
    </div>
    @endif

    <div class="form">
        <form action="{{ url('final-test') }}" method="post" id="form1">
            <div class="form-group">
                <input name="name" id="name" class="form-control" placeholder="Your Full Name"/>                
            </div>
            <br>
            <div class="form-group">
                <input style="cursor:pointer" type="submit" class="btn btn-primary" id="submit" value="Show into Dashboard">
            </div>

            <div class="form-group">
            </div>

        </form>
    </div>
</div>
@endsection

和我的名稱為AccController.php的控制器:

    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AccController extends Controller
{
    public function create() {
        return view('home.create');
    }

    public function show(Request $r) {
        $soul = $r ->name;

        $pesan = "Your name is {$r->name}";
    }
}

和我在web.php中的路線:

//route to get play form
Route::get ('start',        'AccController@create' )->name('home.create');
Route::post('final-test',  'AccController@show');

我想在另一個名為show.blade.php的頁面視圖中顯示:

@extends('layouts.master')

@section('content')

<div>
    {{$name = Input::get('name')}}
    <h1>Your name is {{ $pesan }}</h1> </div>   

@endsection

最后沒有任何錯誤,但無法顯示輸入表單中的值,請您幫我嗎? 問候,阿加。

您未在此處遵循約定。 show方法是從數據庫中獲取數據。 為了顯示表單數據,您需要在store方法中進行操作
HTML代碼

html格式應該有一些小的變化

{{--Changing in just action--}}
{{-- If it doesn't accept that action then replace it with {{AccController.php@store}} --}}
<form action="AccController.php@store" method="post" id="form1">
        <div class="form-group">
            <input name="name" id="name" class="form-control" placeholder="Your Full Name"/>                
        </div>
        <br>
        <div class="form-group">
            <input style="cursor:pointer" type="submit" class="btn btn-primary" id="submit" value="Show into Dashboard">
        </div>

        <div class="form-group">
        </div>

    </form>

然后在Controller中,您將在存儲功能中獲取該表單數據

 public function store(Request $r) {
    $soul = $r ->name;

    $pesan = "Your name is {$r->name}";
    return $pesan;

}

如何獲得路線?

好吧,您在route.php中犯了一些錯誤。 您只需要遵循laravel為我們提供的約定即可。

以此替換您的路線代碼。

    Route::resource('/posts', 'AccController.php');

在這里,它將自動調用Controller的所有默認功能,並為其分配特定的路由。 例如下面的圖片

在此處輸入圖片說明

您只需在終端或命令提示符下鍵入php artisan route:list ,您將看到您創建的路由列表以及laravel為您創建的路由以及方法,URI和名稱。 您只需要遵循約定,它將自動為您提供結果請嘗試一下並告訴我

您的web.php

//route to get play form
Route::get('/start', 'AccController@create')->name('home.create');
Route::post('/final-test', 'AccController@show')->name('home.show');

在路線最終測試中添加了名稱home.show

您的AccController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AccController extends Controller
{
    public function create()
    {
        return view('home.create');
    }

    public function show(Request $r)
    {
        $soul = $r->name;
        return view('home.show')->with('soul', $soul);
    }
}

您的show.blade.php

@extends('layouts.master')

@section('content')
<div>
    <h1>Your name is {{ $soul }}</h1>
</div>
@endsection

您的create.blade.php

@extends('layouts.master')

@section('content')
<div class="container">
    <div class="header">
        <h1><b>Create an account</b></h1>
        <h5>Welcome to Konoha Village</h5>
    </div>

    @if(isset($name))
    <div class="alert alert-warning alert-dismissible" role="alert">
        Halo <strong>{{$name}}</strong>
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">$times;</span>
        </button>
    </div>
    @endif

    <div class="form">
        <form action="{{ route('home.show') }}" method="post" id="form1">
            {{ csrf_field() }}
            <div class="form-group">
                <input name="name" id="name" class="form-control" placeholder="Your Full Name"/>
            </div>
            <br>
            <div class="form-group">
                <input style="cursor:pointer" type="submit" class="btn btn-primary" id="submit" value="Show into Dashboard">
            </div>

            <div class="form-group">
            </div>

        </form>
    </div>
</div>
@endsection

這是進行了最重要的更改的地方:我將{{ csrf_field() }}移到了表單內,所以您不會看到The page has expired due to inactivity. Please refresh and try again. The page has expired due to inactivity. Please refresh and try again. {{ route('home.show') }}表單操作更改為命名路線{{ route('home.show') }}

我保留了您的<span aria-hidden="true">$times;</span>但這只會顯示$times; ,可能需要進行調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM