Populate dropdown with ajax revisited
-
Previous topic here: https://wordpress.org/support/topic/populate-dropdown/
So, I have to create a filter that is capable of filtering cars according to make and model.
I have set up a custom post type called Vehicles (slug vehicles)
Inside vehicles I have Category where model info is stored.
– Manufacturer (BMW)
— model (3.series)Then I have custom taxonomy, Manufacturer that holds all vehicle manufacturers.
– Ford
– BMW etc.In my plugin settings I have Taxonomy field (manufacturer) and category field (models) that I can use for filtering.
Now, it all works with one word manufacturer like BMW or Ford but If i use two or more word car manufacturer like Mercedes-Benz or Land rover it does not find correct subitems for it and therefore returns all items.
The problem is within ajax function found in previous thread that I linked top of this thread.
I have modified it a bit to use more id-s than values/slugs.
Again, it all works with one-word names like BMW, FORD etc. What am I missing, where is the problem?
Ajax part:
function ajax_uwpqsf() {
$cat_id = get_cat_ID( ucfirst($_POST[‘id’]) );
//echo $cat_id;
$args = array( ‘parent’ => $cat_id, ‘orderby’ => ‘name’, ‘hide_empty’ => 1 );
$categories = get_terms( ‘category’,
array(
‘hide_empty’ => 1,
‘child_of’ => $cat_id,
‘parent’ => $cat_id,
‘hierarchical’ => false
)
);
$modeldata = ”;
foreach( $categories as $category ) {
$modeldata .= ‘<option value=”‘.$category->term_id.'”>’.$category->name.'</option>’;
}
echo ‘<option value=”uwpqsftaxoall”>Mudel</option>’;
echo $modeldata;
die();
}JQuery part:
$(‘#tdp-0’).change(function(e){
var cat_id = $(this).val();
$.ajax({
cache: false,
type: ‘POST’,
url: ajax_uwpqsf_object.ajaxurl,
data: {
‘action’: ‘ajaxuwpqsf’,
‘id’: cat_id
},
dataType: “html”,
success: function(data){
$(‘#tdp-1’).html(data);
$(‘#uniform-tdp-1 span’).html(data);
console.log( data );
}
});
e.preventDefault();
return false;
});
$(“#tdp-1”).attr(‘disabled’,’disabled’);
- The topic ‘Populate dropdown with ajax revisited’ is closed to new replies.