表单提交和接收在同一页(Laravel, php, blade)

Form submission and receipt on the same page (Laravel, php, blade)

我不明白为什么这不起作用。帮助!!! 我需要输入的值在发送后显示在输入中。

TestController.php

class TestController extends Controller {

public function form(Request $request) {
    if ($request->isMethod('get')) {
        echo 'REQUEST GET';                      
        return view('test');  
    }
    
    if ($request->isMethod('post')) {
        $text = $request->input('text');
        echo 'REQUEST POST';
        echo '<br>';
        echo $text;  
        return view('test', ['text', $text]);
    }
}

test.blade.php

    <div class="container">
    <div class="col-sm-offset-0 col-sm-12 {{ $CONTAINER_SETTINGS->OFFSET_MD }} {{ $CONTAINER_SETTINGS->WIDTH_MD }}">
        <div class="panel panel-default">
            <div id="header" class="panel-heading">
                <h4><i class="fa fa-btn fa-users"></i>Test</h4>
            </div>

            <div class="panel-body">

                <form action="{{ url('test') }}" method="POST">
                    {{ csrf_field() }}
                    @if(isset($text))
                    <input type="text" name="text" value="{{ $text }}">                                      
                    @else
                    <input type="text" name="text" >                                      
                    @endif
                    <input type="submit">
                </form>
            </div>
        </div>
    </div>
</div>

web.php(路线)

Route::get('test', 'TestController@form');
Route::post('test', 'TestController@form');

enter image description here

enter image description here

因为你在return查看时没有发送带索引数组的数据。

查看 Laravel Passing Data To Views

的文档

试试这个:

return view('test', ['text' => $text]);