I'm building a webshop using WooCommerce. I made two switch buttons, with which you can change the view. Either to 'List view', or to 'Grid view'. I'm using this function to trigger the ajax call(this code is just for the list view button):
$('#view-list').on('click',function(){
var which_view = $(this).val();
$.ajax({
type: 'post',
url: 'view-list.php',
data: {which_view : which_view},
success: function(res){
$("#ajaxtest").html(null);
$("#ajaxtest").html(res); // res = your new view...
}
});
});
'view-list.php' looks like this:
<div id="ajaxtest">
TESTING LIST VIEW TRIGGER
<?php if ( have_posts() ) : ?>
<?php woocommerce_product_loop_start(); ?>
<?php woocommerce_product_subcategories(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php wc_get_template_part( 'content', 'product' ); ?>
<?php endwhile; // end of the loop. ?>
<?php woocommerce_product_loop_end(); ?>
<?php
/**
* woocommerce_after_shop_loop hook
*
* @hooked woocommerce_pagination - 10
*/
do_action( 'woocommerce_after_shop_loop' );
?>
<?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>
<?php wc_get_template( 'loop/no-products-found.php' ); ?>
<?php endif; ?>
</div>
The ajax funtion works. As in, it loads the new file 'view-list.php'. However, it doesn't go any further than that. It doesn't process the rest of the file. This is probably because the browser can't process php functions after it has been loaded, isn't it?
How can I still make this work?