我写了一个自定义的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