Reputation: 93
I have two select option in register.blade.php:
If any one click on option B.E./B.TECH. OR DIPLOMA of Name of Course. Then based on selected Name of Course select option, result will be show in Name of Branch. All are working nice.
But Here text field Name is required and validation is set in controller. Now if I didn't fill name and select DIPLOMA from option first then result shows in second option field. And I select any option from results and submit the form. Then form will be redirect on register.blade.php, because of Name required. And selected option hide.
I want after submit the form, if redirect on same page then Name of Branch field should be show with selected option, If it has been selected.
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 on same page:
<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 is:
<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
function in controller for AJAX request is:
public function findbranch(Request $request)
{
$branchname = branchname::where('course_id', $request->id)->get();
return view('auth.branchfind')->with(compact('branchname'))->render();
}
Upvotes: 0
Views: 1162
Reputation: 284
Use
$validator = Validator::make($rules,$request->all());
if ($validator->fails()) {
return redirect()->back()->withInput()->withErrors($validator);
}
Upvotes: 1