2017-11-23 31 views
0

私はドロップダウンリストにすべてのポストタイプを表示するプラグインを作成しています。また、各ポストタイプの対応するカテゴリ(タクソノミ)を表示するための選択ボックスもあります。ポストタイプが変更されると、対応するカテゴリがajax呼び出しによって選択されます。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に行くされていません。何故ですか?

答えて

1

jQuery.ajax()の呼び出しに構文エラーがあることがわかりました。渡す引数は適切なJavaスクリプトオブジェクトではありません。 投稿: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); 
      } 
     }); 
0

引数なしでplugin_dir_urlを使用することはできません。 代わりにこの形式を使用してください。

plugin_dir_url(__FILE__).'cust-taxonomy/ajax_tax.php'; 
関連する問題