Reputation: 343
trying get values to <select>
onchange of other <select>
tag values. I have tow dropdown list called vehicle_type and part_type. what i want to do when select the vehicle type and part type need change the part name dropdown list. It is different to vehicle type and part type combination. So I wrote following code. Could some one help me to find the error of this code. And I'm new to jquery
my html
<div>
<label>Vehicle Type</label>
<label>
<select name="vehicle_type" id="vehicle_type" required>
<option value='' disabled selected style='display:none;'>Select Vehicle</option>
<option value="Car">Car</option>
<option value="Van">Van</option>
<option value="SUV/4WD">SUV/4WD/CAB</option>
<option value="Truck">Truck</option>
</select>
</label>
</div>
<div>
<label>Part Type</label>
<label>
<select name="part_type" id="part_type" required>
<option value='' disabled selected style='display:none;'>Select Part Type</option>
<option value="Engine">Engine</option>
<option value="Body">Body</option>
</select>
</label>
</div>
<div>
<label>Part Name</label>
<label>
<select name="part_name" id="part_name" required>
<option value='' disabled selected style='display:none;'>Select Part Name</option>
</select>
</label>
</div>
#dropdown.js
function setSelect(vehicle_type, part_type){
$.post("dropdown.php",{"vehicle_type":vehicle_type, "part_type":part_type},function(data){
$("#part_name").html(data);
});
}
$(document).ready(function(){
$("#vehicle_type").live('change', function(){
var vehicle = $(this+"option:selected").val();
});
$("#part_type").live('change', function(){
var part = $(this+"option:selected").val();
});
setSelect($("#vehicle_type option:selected").val(), $("#part_type option:selected").val());
});
my dropdown.php
<?php
if(isset($_POST['vehicle_type'])&&isset($_POST['part_type'])){
$vehicle_type =$_POST['vehicle_type'];
$part_type =$_POST['part_type'];
if(($vehicle_type=="Car")&&($part_type=="Engine")){
$partname = "<option value=\"Engine Head Block\">Engine Head Block</option>";
$partname .= "<option value=\"Engine Complete W/O Gear Box\">Engine Complete W/O Gear Box</option>";
$partname .= "<option value=\"Engine With A/T CVT Gear Box\">Engine With A/T CVT Gear Box</option>";
} elseif(($vehicle_type=="Car")&&($part_type=="Body")){
$partname = "<option value=\"Nose Pannel / Parts\">Nose Pannel / Parts</option>";
$partname .= "<option value=\"Front Bumper With Fog Lamp L/R\">Front Bumper With Fog Lamp L/R</option>";
$partname .= "<option value=\"Front Bumper Bracket Retainer L/R\">Front Bumper Bracket Retainer L/R</option>";
}
Please tell me the error. I'm new to jquery
Upvotes: 0
Views: 2598
Reputation: 4273
Try This:
<?php
if(isset($_POST['vehicle_type'])&&isset($_POST['part_type'])){
$vehicle_type =$_POST['vehicle_type'];
$part_type =$_POST['part_type'];
if(($vehicle_type=="Car")&&($part_type=="Engine")){
$partname = "<option value=\"Engine Head Block\">Engine Head Block</option>";
$partname .= "<option value=\"Engine Complete W/O Gear Box\">Engine Complete W/O Gear Box</option>";
$partname .= "<option value=\"Engine With A/T CVT Gear Box\">Engine With A/T CVT Gear Box</option>";
} elseif(($vehicle_type=="Car")&&($part_type=="Body")){
$partname = "<option value=\"Nose Pannel / Parts\">Nose Pannel / Parts</option>";
$partname .= "<option value=\"Front Bumper With Fog Lamp L/R\">Front Bumper With Fog Lamp L/R</option>";
$partname .= "<option value=\"Front Bumper Bracket Retainer L/R\">Front Bumper Bracket Retainer L/R</option>";
}
echo $partname;
}
?>
No need to change HTMLs. just change JS to
<script type="text/javascript">
function setSelect(vehicle_type, part_type){
//alert(vehicle_type+part_type);
$.post("dropdown.php",{"vehicle_type":vehicle_type, "part_type":part_type},function(data){
$("#part_name").html(data);
});
}
$(document).ready(function(){
$("#vehicle_type").change(function(){
var vehicle = $("option:selected",this).val();
});
$("#part_type").change(function(){
var part = $("option:selected",this).val();
setSelect($("#vehicle_type option:selected").val(), $("#part_type option:selected").val());
});
});
</script>
Upvotes: 1