执行AJAX POST函数后未收到任何信息

时间:2016-09-08 作者:daniel lee

我试图实现的是让用户能够根据侧栏上复选框的选择来过滤帖子。

我创建了一个名为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。

1 个回复
SO网友:scott

请阅读Wordpresstutorial 关于在插件中使用AJAX(如果需要使用AJAX,基本上就是在主题中添加插件)。在你继续之前,有两件事需要解决。请注意教程中关于全局变量的内容ajaxurl. 还要确保您已经设置了一个php函数来处理AJAX请求,并且在action 数据字段。这就像你在打一个没有电话号码的电话;系统不知道将AJAX请求发送到哪里进行处理。

我会按照教程的建议去做,但我认为这两件事现在是最重要的。