2017-02-01 7 views
0

私は2ページあります。 1つは作成ページで、もう1つは確認ページです。作成ページにはフォームがあり、確認ページにリダイレクトする「確認に進む」ボタンがあります。 [確認]ページには[作成]ページのすべての入力が表示され、入力したすべての値をチェックした直後にユーザーが送信できます。あるページから別のページへのフォーム入力値の表示

コントローラー:

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', '[email protected]')->name('create'); 

Route::post('confirm-create', '[email protected]')->name('confirm-create'); 

Route::put('store', '[email protected]')->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() }} 

[確認]ボタンをクリックした後、[作成]ページのデータを[確認]ページに表示できないようです。コントローラ、ルート、ビュー(作成ページと確認ページの両方)はどのように見えるのですか?ヘルプを送信します。ありがとう!

答えて

0

valuepages.confirm-createビューを渡しますが、使用しないでください。

{{ old('contactNumber') }}{{ $value['contactNumber'] }}または{{ $value['contactNumber'] }}と置き換えてください。

old()を使用すると、検証時には、ビューに渡された値からではなく、以前の要求から値が取得されます。

+0

ありがとうございました。私はあなたが言ったことをしたが、私の確認ページはまだ空です。私の作成ページアクションURL( 'url => 'confirm-create'')は正しいですか? –

+0

また、私のコントローラにはまだ何かが欠けている、あるいは間違っていると思います。 –

+0

'<?php var_dump($ values);を追加してください。 ?>を 'confirm-create.blade.php'の先頭に置いて、配列であることを確認します。 –

0

Confirm Pageビューで小さな間違いをしています。

古い入力をそのまま使用することはできません。ドキュメントを見てきた:

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

と述べている:

Laravelはあなたが次の要求中に1つのリクエストからの入力を維持することができます。この機能は、検証エラーを検出した後にフォームを再入力する場合に特に便利です。

これは、検証の問題が発生した場所と同じ形式でのみ使用されます。また、あなたが使用している

<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']の代わり​​を使用する必要があります。

+0

答えをありがとう。しかし、私は作成ページでは ''を使用し、確認ページでは使用しませんでした。私は確認のページで '

+0

Okey。だから、価値観があなたの視点に入っているかどうかを試そうとしましたか? '{{dd($ value)}}'を使って値が渡されたかどうかを調べることができます – PaladiN

関連する問題