尝试将AJAX实施到我的管理页面。我是否不正确地排队和本地化我的脚本?

时间:2012-12-04 作者:ItsPronounced

我正试图在我的编辑后表单中实现AJAX,以便将自定义wp函数挂接到链接单击中。到目前为止,我已经能够将我的自定义js文件注册到我的管理头中。然而,当测试我的链接时,除非我在jQuery中执行alert(),否则什么都不会发生。

以下是我要挂接到自定义函数的href链接的代码:

<a href="#" id="delete-\' . $field[\'id\'] . \'" class="delete_pdf" title="Delete this PDF." >Delete</a>
这是我函数中的代码。用于注册、排队和本地化脚本的php,以及我的自定义函数(仍在进行中):

//Add AJAX functionality to post.php to delete files
add_action(\'admin_enqueue_scripts\', \'my_admin_enqueue_scripts\');
add_action(\'wp_ajax_delete_meta\', \'delete_pdf_and_metadata\');

//Add my custom JS to the header of admin
function my_admin_enqueue_scripts($hook) {
    global $current_screen;

    if ( \'post.php\' != $hook )
        return;
    wp_register_script(\'my-scripts\', get_template_directory_uri() . \'/js/custom/my-scripts.js\' );
    wp_enqueue_script(\'my-scripts\');
    wp_localize_script(\'my-scripts\', \'wp_ajax\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' )));
}

function delete_pdf_and_metadata() {

    global $post;

    $the_id = intval($_POST[\'the_id\'] );
    //echo $the_id . \'<br />\';  //debugging
    //echo $key . \'<br />\';  //debugging
    wp_die($the_id);   //debuggin

    //delete_post_meta( $post->ID, $key );  //TODO
}
这是我的jQuerymy-scripts.js 我已成功注册的文件:

jQuery(document).ready(function($) {
    $(\'.delete_pdf\').each(function(i,e) { //grab the class delete-pdf
        var id = $(this).attr(\'id\').replace(/delete-/, \'\');
        $(this).click(function(){
            //alert(\'Clicked! \'+ $(this).attr(\'id\'));  //THIS WORKS WHEN CLICKED
            $.post(wp_ajax.ajaxurl, { action: \'delete_meta\', the_id: id }, function(data){
                });
        });
    });

    function replace_pdf_with_file_upload(){
        //TODO write to replace PDF link with File Upload

    }
});
在我的jQuery中,如果在单击链接时执行alert(),效果会很好。但是,当我尝试测试自定义函数时delete_pdf_and_metadata() 通过简单地执行wp_die(), 我什么也得不到。甚至在我调试javascript的firebug中也没有例外。

我认为这与我本地化脚本的方式有关,但我不确定。这是我第一次在WordPress中使用AJAX。

我错过什么了吗?

1 个回复
SO网友:Parham

根据上面的评论,您只是传递了一个错误的id,或者您需要修改delete\\u pdf\\u和\\u metadata函数。intval(\'aps\\U pdf1\')为0,这就是为什么您的响应为0!

结束

相关推荐

用于在WordPress循环中按类别过滤帖子的AJAX

我一直在寻找一种方法来过滤我的帖子http://www.waziproject.com/wazimagazine/ 无需重新加载页面。因此,我的问题是,是否有人可以帮助我将以下内容转换为不需要刷新/重新加载页面的过滤器列表。。。我相信以下答案是我能找到的最接近解决方案:Using ajax on categories and wordpress loops然而,我不确定在哪里实现代码。我在循环中使用以下内容。php:<div id=\"queryMenu\"> <ul>&#