How can I achieve this output?
I want a dynamic dropdown like when I select a value on the dropdown then it the textbox should be filled with its connected value automatically
here is my database value example
so for example i choose 123
on the select dropdown then the textbox must be filled with 3
automatically, how can i do that?
here is my code it is not working btw.
View
<span>Aircraft Name</span>
<select name="aircraft_name" class="aircraftsName">
<option value="0" disabled="true" selected="true"> Select </option>
@foreach ($aircrafts as $aircraft)
<option value="{{ $aircraft->aircraft_registration_number }}">{{ $aircraft->aircraft_registration_number }}</option>
@endforeach
</select>
<span>Aircraft ID</span>
<input type="text" class="aircraft_id">
Controller
public function findPrice(Request $request){
$p=Product::select('aircrafts')->where('registred_company_name',$request->aircraft_id)->first();
return response()->json($p);
}
Web
Route::get('/admin/settings/findAirName','Admin\SettingsController@findAirName');
Ajax & Javascript
<script type="text/javascript">
$(document).ready(function(){
$(document).on('change','.aircraft_id',function(){
var air_id = $(this).val();
var a = $(this).parent();
console.log("Its Change !");
var op = "";
$.ajax({
type:'get',
url:'{!!URL::to('/admin/settings/findAirName')!!}',
data:{'id':air_id},
dataType:'json',//return data will be json
success:function(data){
// console.log("price");
console.log(data.registred_company_name);
a.find('.aircraft_id').val(data.registred_company_name);
},
error:function(){
}
});
});
});
You're targeting the wrong element in the jquery. If you want to change the value of the textbox when the select dropdown is changed then you need to target the select. Change the target element from
.aircraft_id
to.aircraftsName
on this line$(document).on('change', '.aircraftsName', function() {
.Also, you don't need to make a call to the controller. You could put the
aircraft_id
as the value in the select dropdown. Updating the way the select dropdown is created to something like this might work:Then your jquery could be as simple as this:
If you want to use an ajax call I've updated the code a little:
This might get you closer. Since it's a
get
request you could append the id to the url and not use the data parameter:url: '/admin/settings/findAirName?id=' + air_id;
, but don't include the linedata: {id: air_id}
.you can do it this way:
VIEW
I've added
id
on theselect
andinput
element