(Wordpress / AJAX):从前端更新附件标题,说明和alt

时间:2016-07-21 15:17:04

标签: javascript php jquery ajax wordpress

在AJAX中使用wordpress我正在尝试从前端更新附件元素。由于某些原因,我得到json响应“ NaN ”或null。这是记录用户的表单,因此我没有使用wp_ajax_nopriv_

在我的 functions.php

add_action('wp_ajax_update_portfolio', 'update_portfolio_function' );
function update_portfolio_function(){
    $id = $_POST['pid'];
    $title = $_POST['itemtitle'];
    $description = $_POST['itemdescription'];
    $attachment = array(
        'ID' => $id,
        'post_title' => $title,
        'post_content' => $description
    );
    // now update main post body
    wp_update_post( $attachment );
    die();

    $response = array('pid'=>$id,'title'=>$title);
    echo wp_send_json($response);
    exit;
}

在我的jQuery / AJAX中我有:

function update_info(id, itemtitle, itemdescription)
{
    jQuery.ajax({
        method: 'post',
        url : ajaxurl,
        dataType: "json",
        data: {
            'action':'update_portfolio_function',
            'pid' : id,
            'itemtitle' : itemtitle,
            'itemdescription' : itemdescription,
        },
        success:function(data) {
            alert(data.pid + data.title); //Damn
        },
        error: function(errorThrown){
            console.log(errorThrown);
        }

    });
      //alert("a");
}

作为回复,我想检查是否已正确提交idtitle。正如您所看到的,我正在使用警报来打印它们。值很好地传递到jQuery函数中,但我不认为它们是从我的php端接收的(或者处理不当),因为我在data.piddata.title上得到了“NaN”作为响应。你能救我吗?

修改 我的要求详情

enter image description here

1 个答案:

答案 0 :(得分:1)

我的错。在这里监督:

add_action('wp_ajax_update_portfolio', 'update_portfolio_function' );

应该是

add_action('wp_ajax_update_portfolio_function', 'update_portfolio_function' );

固定。