在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");
}
作为回复,我想检查是否已正确提交id
和title
。正如您所看到的,我正在使用警报来打印它们。值很好地传递到jQuery函数中,但我不认为它们是从我的php端接收的(或者处理不当),因为我在data.pid
和data.title
上得到了“NaN”作为响应。你能救我吗?
修改 我的要求详情
答案 0 :(得分:1)
我的错。在这里监督:
add_action('wp_ajax_update_portfolio', 'update_portfolio_function' );
应该是
add_action('wp_ajax_update_portfolio_function', 'update_portfolio_function' );
固定。