我试图使其工作下面的代码,但我不知道什么是错误的元值。我不能从输入中获得值,php正在保存变量。所有我想要的是更新元值元id (Wordpress),但我真的不明白是什么错了。
HTML<input name="in_meta-5852-submit" id="in_meta-5852-submit" class="button updatemeta button-small buttons_span" value="Update">
<input name="in_meta[5852][value]" id="in_meta-5852-value" size="14" type="text" value=" enter numbers and letters ">
JS
$('#in_meta-5852-submit').click(function(){
var meta_id = "5852";
var values = $('#in_meta-5852-value').val();
var data = {
action: 'my_action',
post_id: $('#post_ID').val(),
meta_id: meta_id,
values: values,
};
$.post(ajaxurl, data, function(response) {
if( 0 == response ) {
$( Saving failed);
}
});
PHP add_action( 'wp_ajax_my_action', 'isave_meta' );
function isave_meta( $post ) {
$post_id = 'post_id';
$values = 'values';
if(isset($_POST) && isset($_POST['meta_id']))
{
update_metadata_by_mid( $post_id, absint( $_POST['meta_id'] ), $values, );
}
}
您需要修改您的PHP代码,以便您可以引用传递的值:
add_action( 'wp_ajax_my_action', 'isave_meta' );
function isave_meta( $post ) {
$post_id = 'post_id';
//$values = 'values';
$values = $_POST['values'];
if(isset($_POST) && isset($_POST['meta_id']))
{
update_metadata_by_mid( $post_id, absint( $_POST['meta_id'] ), $values, );
}
}
我做了一个改变…你可以看到我注释掉的那行,以及下面我替换掉的那行。更改是读取从$_POST
数组传递的值,而不是将值直接设置为"values"。