我在theme的functions.php
使用ajax的文件,原理如下:
add_action(\'admin_head\', \'rw_script\');
function rw_script() {
echo \'
<script type="text/javascript">
// delete image
$(".delete_image").click(function(){
var data = $(this).attr("rel");
$.post(
ajaxurl,
{action: \\\'rw_delete_image\\\', data: data}, function(response){
alert(response); // debug
}
);
return false;
});
});
</script>\';
}
function delete_image() {
if (isset($_POST[\'attach_id\'])) wp_delete_attachment($_POST[\'attach_id\']);
die();
}
add_action(\'wp_ajax_rw_delete_image\', \'delete_image\');
它工作得很好。但当我将其转换为OOP时,ajax不起作用:
class RW_Test {
function __construct() {
add_action(\'admin_head\', array(&$this, \'rw_script\'));
add_action(\'wp_ajax_rw_delete_image\', array(&$this, \'delete_image\'));
}
function rw_script() {
echo \'
<script type="text/javascript">
// delete image
$(".delete_image").click(function(){
var data = $(this).attr("rel");
$.post(
ajaxurl,
{action: \\\'rw_delete_image\\\', data: data}, function(response){
alert(response); // debug
}
);
return false;
});
});
</script>\';
}
function delete_image() {
if (isset($_POST[\'attach_id\'])) wp_delete_attachment($_POST[\'attach_id\']);
die();
}
}
javascript工作正常,即当我单击删除链接时,数据被正确发送。但删除图像的操作未启动。
你知道怎么解决这个问题吗?请帮帮我。非常感谢。
最合适的回答,由SO网友:Anh Tran 整理而成
这是一个很长的时间以来,这个问题,现在我的代码已经改变了很多。但在重新查看代码后,我认为请求应该是:
$.post(
ajaxurl,
{action: \'rw_delete_image\', attach_id: data}, function(response){
alert(response); // debug
}
);
not {action: \'rw_delete_image\', data: data}
.