如何重新加载页面后根据第一个选择选项选择选择的选项

时间:2018-11-25 09:04:07

标签: jquery ajax laravel laravel-5

register.blade.php中有两个选择选项:

如果有任何人单击课程名称的选项 B.E./B.TECH。 DIPLOMA 。然后根据选择的课程名称选择选项,结果将显示在分支名称中。一切都很好。

但是此处文本字段名称是必填字段,并且在控制器中设置了验证。现在,如果我没有填写姓名,而是先从选项中选择DIPLOMA,那么结果将显示在第二个选项字段中。我从结果中选择任何选项,然后提交表格。然后,由于需要 Name ,表单将在register.blade.php上重定向。并选择隐藏的选项。

我要在提交表单后,如果在同一页面上进行重定向,则应该在分支名称字段中显示选定的选项,如果已选择。

register.blade.php

<form action="route('register')" method="post">
<div class="form-group col-md-6 col-sm-6">
<label for="name">Name* </label>
<input type="text" class="form-control input-sm required" id="alumni_name" name="alumni_name" placeholder="" value="{{ old('alumni_name') }}">
<span style="color: red;">{{ $errors->first('alumni_name',':message') }}</span>
</div>

<div class = "form-group col-md-6 col-sm-6"> 
<label for="years">Name of Course*</label> 
<select class="form-control input-sm required" id="courses_name" name="alumni_course"> 
<option value="">-- Select Any one --</option> 
@foreach($coursename as $coursenames) 
<option value="{{ $coursenames->id.','.$coursenames->coursename }}" {{ old('alumni_course') == $coursenames->id.','.$coursenames->coursename ? 'selected' : '' }} >{{ $coursenames->coursename }}</option> 
@endforeach 
</select>
<span style="color: red;">{{ $errors->first('alumni_course',':message') }}</span> 
</div>

<div class = "form-group col-md-6 col-sm-6" id="dvPassport" style="display:none"> 
<label for="years">Name of Branch*</label> 
<select class="form-control input-sm required" id="branch_name" name="alumni_branch">
@include('auth.branchfind') 
</select> 
</div>
<input type="submit" value="SAVE">
</form>

同一页面上的AJAX:

<script type="text/javascript">
  $(document).ready(function(){
     $("#courses_name").change(function(){
         var courses_name1 = $("#courses_name").val();
         var courses_name2 = courses_name1.split(",");
         var id = courses_name2[0];
         var courses_name2 = courses_name2[1];
         if(courses_name2 == 'B.E./B.TECH.' || courses_name2 == 'DIPLOMA')
         {
         $("#dvPassport").show();
         $.ajax({
            type: "GET",
            url: "{{url("findbranch")}}",
            data: {'id': id},
         }).done(function(data){
            $("#branch_name").html(data);
              //console.log(data);
         });
         }
         else {
            $("#dvPassport").hide();
        }
      });
   });
</script>

branchfind.blade.php是:

<option value=''>Select Any One</option>
@if(isset($branchname)) 
@foreach($branchname as $branchnames) 
<option value="{{ $branchnames->id }}" {{ old('alumni_branch') == $branchnames->id ? 'selected' : '' }} >{{ $branchnames->branchname }}</option> 
@endforeach 
@endif

控制器中用于AJAX请求的功能是:

public function findbranch(Request $request)
{
     $branchname = branchname::where('course_id', $request->id)->get();
    return view('auth.branchfind')->with(compact('branchname'))->render();
}

1 个答案:

答案 0 :(得分:1)

使用

$validator = Validator::make($rules,$request->all());
  if ($validator->fails()) {
        return redirect()->back()->withInput()->withErrors($validator);
    }