我试图实现的是让用户能够根据侧栏上复选框的选择来过滤帖子。
我创建了一个名为projects的自定义post类型,以及一些分类法,如客户机和专家。我发现this 这正是我希望我的页面在AJAX中的外观。然而,我认为其中缺少一些代码。无论如何,我成功地用复选框显示了所有分类法,没有任何问题。
<!-- Show clients taxonomies in a checkbox -->
<?php foreach( $myClient as $a ) { ?>
<div id="cat_id">
<input class="client_filter" name="<?php echo $a->term_id; ?>" type="checkbox"><?php echo " ".$a->cat_name; ?>
</div>
<?php } ?>
<!-- show expertises taxonomies in a checkbox -->
<?php foreach( $expertStyles as $b ) { ?>
<div>
<input class="expertise_filter" name="<?php echo $b->term_id; ?>" type="checkbox"><?php echo " ".$b->cat_name; ?>
</div>
<?php } ?>
在我的
script.js
, 我有以下代码:
jQuery(document).ready(function($) {
/* This function will be called on click event */
var optionsChecked = function() {
/* initialize all the variables */
jQuery(\'.filter-result-form\').html("");
var clients = [];
var expertises = [];
var term_id = jQuery(\'#cat_id\').text();
/* loop and push any checked checkboxes into empty array */
jQuery(".client_filter input:checked").each(function() {
var client_id = jQuery(this).attr(\'name\');
clients.push(client_id);
});
jQuery(".expertise_filter input:checked").each(function() {
var expertise_id = jQuery(this).attr(\'name\');
expertises.push(expertise_id);
});
/* collect all the data */
var myData = {
\'filter\':1,
\'term_id\': term_id,
\'client\': clients,
\'expertise\': expertises
}
/* Ajax url */
var url = "/mysite/ajax";
jQuery.post( url, myData, function( myData ){
jQuery(\'.filter-result-form\').append( myData );
});
}
$( "input[type=\'checkbox\']" ).on("click", optionsChecked);
});
当我运行这段代码时,我看到过滤器结果表单中没有出现任何内容。我必须承认,我仍在学习jQuery和AJAX。