在wordpress的TinyMCE编辑器中使用jQuery的AJAX功能

时间:2013-01-22 21:14:29

标签: jquery ajax wordpress tinymce

我写了一个自定义的TinyMCE插件,它给了我一个按钮,当点击它时,打开一个模态窗口,允许我从我的上传中选择图像,然后可以在我的帖子中添加为自定义图库。即通过单击提交按钮,包含所选图像的ID的短代码将输入到我的帖子的文本中。到现在为止还挺好。这符合要求。 现在我不仅要输入短代码,还要在点击“提交”时添加元值。基本上提交我的选择是通过通常的JavaScript机制完成的(没有更新到数据库 - 只是字符串被添加到文本中)。由于没有涉及php动作,我认为我可以用AJAX做到这一点。该函数如下所示:

function ajaxSubmit(id, argstring) {
    jQuery.post("../../add_post_meta.php", {
        post_id: id,
        key: 'bildstrecke',
        val: 'true',
        unique: 'true',
        security: '<?php echo $ajax_nonce ?>'
    }).success(function() {
        window.tinyMCE.execInstanceCommand('content', 'mceInsertContent', false, "[bildstrecke imgs=\""+argstring+"\"]");
        tinyMCEPopup.editor.execCommand('mceRepaint');
        tinyMCEPopup.close();
    }).error(function(e, x) {
        console.log([e, x])
    });
    return false;
}

'add_post_meta.php'包含一些将元值添加到数据库的php代码:

<?php
@require('../../../../wp-config.php');

// check for permissions
if( !is_user_logged_in() || !current_user_can('edit_posts') ) {
    wp_die(__("You are not allowed to be here"));
}

add_action('wp_ajax_action', 'action_function');

function action_function() {
    check_ajax_referer('nonce');
    die();
}

add_post_meta((int)$_POST['post_id'], $_POST['key'], $_POST['val'], $_POST['unique']);
?>

但是,执行上述JavaScript函数'ajaxSubmit'会导致出现未指定的错误。对'add_post_meta.php'的调用没有得到正确执行(在控制台中我看到对脚本的调用但没有得到正确的响应 - 我看到脚本被调用但只有一个永远旋转的过程轮出现)

有什么明显的我做错了吗?所需文件的路径都是正确的(当然,jQuery-libs在HTML标头中正确链接)。

感谢任何提示,

的Stefan

0 个答案:

没有答案