显示从一个页面到另一个页面的表单输入值

时间:2017-02-01 06:00:49

标签: php forms laravel laravel-5

我有两(2)页。一个是创建页面,另一个是确认页面。创建页面有一个表单和一个“继续确认”按钮,该按钮将重定向到确认页面。确认页面应显示“创建”页面中的所有输入,然后用户可以在检查完所有输入值后立即提交。

控制器:

public function create()
{
    return ('pages.create');    
}

public function confirmCreate()
{
    $value = Input::all();
    Session::flash('value', $value);
    return view('pages.confirm-create')->with('value', $value);
}

路线:

Route::get('create', 'MyController@create')->name('create');

Route::post('confirm-create', 'MyController@confirmCreate')->name('confirm-create');

Route::put('store', 'MyController@store')->name('store');

创建页面视图:

{{ Form::open(array('url' => 'confirm-create',
                                'method' => 'POST', 
                                'class' => 'form-horizontal')) }}

    <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
      <label class="col-md-4 control-label required">Name</label>
      <div class="col-md-6">
        <input id="name" placeholder="Name" type="text" class="form-control" name="name" value="{{ old('name) }}" required autofocus>
        @if ($errors->has('name'))
        <span class="help-block">
          <strong>{{ $errors->first('name') }}</strong>
        </span>
        @endif
      </div>
    </div>

    <div class="form-group{{ $errors->has('contactNumber') ? ' has-error' : '' }}">
      <label class="col-md-4 control-label required">Contact Number</label>
      <div class="col-md-6">
        <input id="contactNumber" placeholder="Contact Number" type="text" class="form-control" name="contactNumber" value="{{ old('contactNumber) }}" required autofocus>
        @if ($errors->has('contactNumber'))
        <span class="help-block">
          <strong>{{ $errors->first('contactNumber') }}</strong>
        </span>
        @endif
      </div>
    </div>

    <div class="form-group">
      <div class="col-md-6 col-md-offset-6">
        <button type="submit" class="btn btn-primary">
          Proceed to Confirm
        </button>
      </div>
    </div>

{{ Form::close() }}

确认页面查看:

{{ Form::open(array('url' => 'pages',
                                'method' => 'POST', 
                                'class' => 'form-horizontal')) }}

    <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
      <label class="col-md-4 control-label required">Name</label>
      <div class="col-md-6">
        <label class="control-label">{{ old('name') }}</label>
        @if ($errors->has('name'))
        <span class="help-block">
          <strong>{{ $errors->first('name') }}</strong>
        </span>
        @endif
      </div>
    </div>

    <div class="form-group{{ $errors->has('contactNumber') ? ' has-error' : '' }}">
      <label class="col-md-4 control-label required">Contact Number</label>
      <div class="col-md-6">
        <label class="control-label">{{ old('contactNumber') }}</label>
        @if ($errors->has('contactNumber'))
        <span class="help-block">
          <strong>{{ $errors->first('contactNumber') }}</strong>
        </span>
        @endif
      </div>
    </div>

    <div class="form-group">
      <div class="col-md-6 col-md-offset-6">
        <button type="submit" class="btn btn-primary">
          Submit
        </button>
      </div>
    </div>

{{ Form::close() }}

我似乎无法在我的“创建”页面中显示数据(点击“继续确认”按钮后)到我的“确认”页面。我的控制器,路由和视图(创建和确认页面)应该如何?发送帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

您将value传递给pages.confirm-create视图但不使用它。

{{ old('contactNumber') }}{{ $value['contactNumber'] }}代替{{ $value['contactNumber'] }}

使用old()在验证时很有用,它从先前的请求中获取值,而不是从传递给视图的值中获取值。

答案 1 :(得分:0)

您在Confirm Page视图中犯了一个小错误。

旧输入不能像这样使用。看看文档:

https://laravel.com/docs/5.3/requests#old-input

其中声明:

  

Laravel允许您在下一个请求期间保留一个请求的输入。在检测到验证错误后,此功能对于重新填充表单特别有用。

它仅用于发生验证问题的相同表单。

您还在使用:

<label class="control-label">{{ old('name') }}</label>

而不是输入字段。

<input id="name" placeholder="Name" type="text" class="form-control" name="name" value="{{ $value['name'] }}" required autofocus>

您需要使用$value['name']代替old('name')