我正在使用Wordpress + Ajax,甚至使用正确的钩子,我也会收到错误“ ReferenceError:找不到变量:ajaxobject”。当然,我的ajaxurl有一些问题,但是我不知道在哪里,因为它对我来说似乎做得很好。你能帮助我吗?
在我的functions.php中
add_action( 'wp_enqueue_scripts', 'add_frontend_ajax_javascript_file', 11, 2 );
function add_frontend_ajax_javascript_file()
{
wp_localize_script( 'ajax-script', 'ajaxobject', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
}
我的jQuery / AJAX文件
var itemtitle = $('#itemtitle').val();
var itemdescription = $('#itemdescription').val();
jQuery.ajax({
method: 'post',
url : ajaxobject.ajaxurl, //Why???
dataType: "json",
data: {
'action':'update_portfolio_function',
'pid' : id,
'itemtitle' : itemtitle,
'itemdescription' : itemdescription,
},
success:function(data) {
// This outputs the result of the ajax request
alert("Coooool");
},
error: function(errorThrown){
console.log(errorThrown);
}
});
当然
update_portfolio_function
看起来像add_action('wp_ajax_update_portfolio', 'update_portfolio_function' );
function update_portfolio_function(){
$id = $_REQUEST['pid'];
$title = $_REQUEST['itemtitle'];
$description = $_REQUEST['itemdescription'];
$attachment = array(
'ID' => $id,
'post_title' => $title,
'post_content' => $description
);
// now update main post body
wp_update_post( $attachment );
die();
}
我应该使用
init
还是no_priv
? 最佳答案
您只需要使用ajaxurl而不是ajaxobject.ajaxurl
像下面
jQuery.ajax({
method: 'post',
url : ajaxurl,
dataType: "json",