我正在尝试使其工作下面的代码,但我不知道元值的错误。我无法从输入中获取值,而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, );
}
}
答案 0 :(得分:0)
您需要修改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
数组传递的值,而不是将值字面设置为&#34;值&#34;。