php - I want to add dynamic depended drop down using Ajax but it's not working
one text
This code looks fine to me no error but when I change the top category it's not showing me sub cats. Is there any issue with my code?
I have search a lot but didn't find any solution for this.
My view:
<label for="cats">Category</label>
<select name="cat" id="category" class="form-control category" id="sel_city">
<?php foreach ($procat as $key => $row): ?>
<option value="<?php echo $row->id; ?>"><?php echo $row->cat_name; ?></option>
<?php endforeach ?>
</select>
<label for="cats">Sub Category</label>
<select class="form-control subcategory" id="subcategory" name="subcategory" required>
<option value="">Please Select Subcategory</option>
</select> <label for="cats">Category</label>
<select name="cat" id="category" class="form-control category" id="sel_city">
<?php foreach ($procat as $key => $row): ?>
<option value="<?php echo $row->id; ?>"><?php echo $row->cat_name; ?></option>
<?php endforeach ?>
</select>
<label for="cats">Sub Category</label>
<select class="form-control subcategory" id="subcategory" name="subcategory" required>
<option value="">Please Select Subcategory</option>
</select> <label for="cats">Category</label>
<select name="cat" id="category" class="form-control category" id="sel_city">
<?php foreach ($procat as $key => $row): ?>
<option value="<?php echo $row->id; ?>"><?php echo $row->cat_name; ?></option>
<?php endforeach ?>
</select>
<label for="cats">Sub Category</label>
<select class="form-control subcategory" id="subcategory" name="subcategory" required>
<option value="">Please Select Subcategory</option>
</select> <label for="cats">Category</label>
<select name="cat" id="category" class="form-control category" id="sel_city">
<?php foreach ($procat as $key => $row): ?>
<option value="<?php echo $row->id; ?>"><?php echo $row->cat_name; ?></option>
<?php endforeach ?>
</select>
<label for="cats">Sub Category</label>
<select class="form-control subcategory" id="subcategory" name="subcategory" required>
<option value="">Please Select Subcategory</option>
</select> <label for="cats">Category</label>
<select name="cat" id="category" class="form-control category" id="sel_city">
<?php foreach ($procat as $key => $row): ?>
<option value="<?php echo $row->id; ?>"><?php echo $row->cat_name; ?></option>
<?php endforeach ?>
</select>
<label for="cats">Sub Category</label>
<select class="form-control subcategory" id="subcategory" name="subcategory" required>
<option value="">Please Select Subcategory</option>
</select>
<link href="maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.4.1.min.js"></script>
<script src="maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).off('change','.category').on('change','.category',function(){
var id = $("option:selected",this).val();
$.ajax({
url:"<?= site_url('Products/get_sub_category_acc_cat'); ?>",
type:"post",
data:{id:id},
dataType:"json",
success: function(data)
{
var html = '';
for(x in data)
{
html +='<option value="'+data[x]['id']+'">'+data[x]['sub_cat']+'</option>';
}
$("#subcategory").html(html);
}
});
});
</script><link href="maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.4.1.min.js"></script>
<script src="maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).off('change','.category').on('change','.category',function(){
var id = $("option:selected",this).val();
$.ajax({
url:"<?= site_url('Products/get_sub_category_acc_cat'); ?>",
type:"post",
data:{id:id},
dataType:"json",
success: function(data)
{
var html = '';
for(x in data)
{
html +='<option value="'+data[x]['id']+'">'+data[x]['sub_cat']+'</option>';
}
$("#subcategory").html(html);
}
});
});
</script>
Controller code:
function get_sub_category_acc_cat()
{
$data = $this->Pro_model->get_sub_category_acc_cat();
echo json_encode($data);
}
And model code:
function get_sub_category_acc_cat()
{
$id = $this->input->post('id');
$q = $this->db->get_where('subcat',['cat_id'=>$id]);
if($q->num_rows()>0)
{
return $q->result();
}
else
{
return null;
}
}
Source