使用ajax从文本输入和更新/保存中检索值


Retrive the value from text input and updating/saving with ajax

我试图使其工作下面的代码,但我不知道什么是错误的元值。我不能从输入中获得值,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"。