从文本输入中恢复值并使用ajax更新/保存

时间:2015-08-01 02:46:08

标签: php jquery ajax wordpress wordpress-plugin

我正在尝试使其工作下面的代码,但我不知道元值的错误。我无法从输入中获取值,而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, );
}
}

1 个答案:

答案 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;。