(Wordpress / Ajax)ReferenceError:无法找到变量:ajaxobject

时间:2016-07-21 11:01:29

标签: javascript php jquery ajax wordpress

我正在使用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

1 个答案:

答案 0 :(得分:1)

你只需要使用ajaxurl而不是ajaxobject.ajaxurl

如下所示

jQuery.ajax({
        method: 'post',
        url : ajaxurl,
        dataType: "json",