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条件下,如果下拉框值等于那意味着他们没有从下拉框中选择一个选项,我希望保持在同一页面上。任何人都可以搞清楚这个烂摊子吗?
{!! 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 :(得分:0)
if
部分可能未被执行,因为条件未得到满足。根据您的检查,检查$g
或$s
是否等于0
。如果您只是想查看这些输入参数是否为空/空白,请将if
语句修改为:
if(!$g || !$s){
...
}
此外,您应该使用Request::Input
代替$_GET
,但是您需要将其修复为以下其中一项:
# 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']) !!}
即。第一个参数应该是字段的name
,它将传递给$_GET
。更新表单后,请将if
声明更新为我上面的建议。