Ajax调用不在自定义插件中工作

时间:2017-11-23 11:49:06

标签: javascript jquery ajax wordpress plugins

我正在创建一个插件,用于在下拉列表中显示所有帖子类型,另一个选择框用于显示每种帖子类型的相应类别(分类法)。更改帖子类型后,通过ajax调用选择相应的类别。

这是我的代码:

add_action('admin_menu', 'taxonomy_menu');

function taxonomy_menu(){
        add_menu_page( 'Taxonomy Plugin', 'Custom Taxonomy Plugin', 'manage_options', 'custom-taxonomy-plugin', 'tax_settings' );
}
function tax_settings(){
 $url = plugin_dir_url().'cust-taxonomy/ajax_tax.php';
 $taxo = get_taxonomies();
 var_dump($url);
?>
<form method="POST" action="">
 Post Type<select class="taxonomy">
 <?php
 foreach ( get_post_types() as $post_type ) {
 ?>
  <option value="<?php echo $post_type;?>"><?php echo $post_type;?></option>
 <?php } ?>
 </select><br>
 Categories<select>
  <option value="">Select</option>
 </select><br>
 No: of posts<input type="text" name="num_posts"><br><span></span>
 <input type="submit" name="submit" value="submit">
 </form>
<?php 
}
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
 jQuery(".taxonomy").change(function(){
  var post_type = this.value;
  alert(post_type);
  jQuery.ajax({
            type:'POST',
            url:"<?php echo plugin_dir_url().'cust-taxonomy/ajax_tax.php';?>",
            data: post:post_type,
            success:function(result){
             alert(result);
            }
        });
 });
});
</script>

此处没有AJAX调用进入相应的URL。那是为什么?

2 个答案:

答案 0 :(得分:1)

我可以看到调用jQuery.ajax()时出现语法错误。您传递的参数不是正确的java脚本对象。你需要用花括号括起 post:post_type ,如下所示。

jQuery.ajax({
            type:'POST',
            url:"<?php echo plugin_dir_url().'cust-taxonomy/ajax_tax.php';?>",
            data: {post:post_type},
            success:function(result){
             alert(result);
            }
        });

答案 1 :(得分:0)

你不能在没有参数的情况下使用plugin_dir_url。 请改用此格式;

plugin_dir_url(__FILE__).'cust-taxonomy/ajax_tax.php';