2016-04-12 8 views
0
public function index1() 
{ 




    $g = Request::Input('grade'); 
    $s = Request::Input('subject'); 

    if(strcmp($g,'Select A Grade')==0 || strcmp($s,'Select A Subject')==0) { 

     if (strcmp($s, 'Select A Subject') == 0) { 
      // Session::flash('msg', 'Please select the Subject.'); 
      return redirect()->back()->withInput(); 

     } else if (strcmp($g, 'Select A Grade') == 0) { 
      // Session::flash('msg', 'Please select the Grade.'); 
      return redirect()->back()->withInput(); 

     } 


    } 

else{ 

     $u = DB::table('upldtbls')->where('grade',$g)->where('subject',$s)->get(); 


     return view('2Eng',compact('u')); 
} 

} 

上記はコントローラメソッドです。主な部分は正しく実行されました。しかし、もし私が望むように実行されていない場合は、メイン。メインのif条件では、ドロップボックスの値がドロップボックスからオプションを選択しなかった場合の値と等しい場合、同じページにとどまります。誰でもこの混乱を理解できますか?条件が満たされていないので、laravel 5コントローラメソッドで部分が実行されないのはなぜですか?

{!! Form::select('Select A Grade', array('' => 'Select A Grade','2' => '2', '3' => '3','4' => '4'), 'Select A Grade', ['class' => 'form-control']) 
{!! Form::select('Select A Subject', array('' => 'Select A Subject','English' => 'English', 'Mathematics' => 'Mathematics','Environmental Studies' => 'Environmental Studies'), 'Select A Subject', ['class' => 'form-control']) !!} 

答えて

0

if部分はおそらく実行されていません。あなたが確認した通り$gまたは$s0に等しいことを確認してください。

if(!$g || !$s){ 
... 
} 

また、あなたが本当に$_GETの代わりにRequest::Inputを使用する必要がありますが、あなたはのいずれかにそれを修正する必要があります:あなたは、単にこれらの入力パラメータが空白/空であるかどうかを確認しようとしている場合は、にごif文を修正以下:

# Laravel 5.1.x or earlier 
$g = Request::Input('grade'); 
$s = Request::Input('subject'); 

または

# Laravel 5.2.x or later 
$g = $request->input('grade'); 
$s = $request->input('subject'); 

更新

問題はselectボックスにあります。あなたはそれらの名前を間違って指定しました。あなたがいくつかの基本的なデバッグを実行した場合、これは気づいたでしょう。次のようにそれらを更新します。

{!! Form::select('grade', array('' => 'Select A Grade','2' => '2', '3' => '3','4' => '4'), null, ['class' => 'form-control']) 
{!! Form::select('subject', array('' => 'Select A Subject','English' => 'English', 'Mathematics' => 'Mathematics','Environmental Studies' => 'Environmental Studies'), null, ['class' => 'form-control']) !!} 

すなわち、最初のパラメータは$_GETに渡されるフィールドのnameでなければなりません。フォームを更新したら、ifのステートメントを上記の私の提案に更新してください。

+0

私はもう一度更新しました。上記の問題は依然として存在します。 –

+0

最初に条件が満たされていることを確認しましたか? 'if'ステートメントの前に' $ g'と '$ s'の値をチェックして、コードが返すものを見てください。 –

+0

ああ!あなたは正しいです。ドロップボックスから値が選択されていない場合は値を取得しません。何故ですか? –

関連する問題