Wordpress ajax函数参数不起作用

时间:2017-01-20 11:14:48

标签: javascript php jquery ajax wordpress

我正在使用wordpress ajax并且代码未将参数值metakey: id传递给$_POST["metakey"]。因此var_dump($_POST)显示array(0) { }

如果我在PHP函数$key=<any meta key>中输入变量的静态值,那么它可以正常工作

jQuery(".selectbox").change(function(){
     var id = this.id;

     // do a POST ajax call
    $.ajax({
      type: "POST",
      url: '<?php echo admin_url('admin-ajax.php'); ?>',
      data: ({
        action: "get-mata-value",        
        metakey: id
      }),
      success:  function( response ) {     
                jQuery.each(response ,function(index,value){
                    jQuery('#' +id).append('<option value="'+value+'">'+value+'</option>');
                });
 }
    });




});

PHP:

add_action("wp_ajax_get-mata-value", "get_mata_value");
add_action("wp_ajax_nopriv_get-mata-value", "get_mata_value");
function get_mata_value()
{   
    global $wpdb;
$key=$_POST["metakey"];
    $result=
 $wpdb->get_col( $wpdb->prepare( 
    "
    SELECT      DISTINCT meta_value
    FROM        $wpdb->postmeta 
    WHERE       meta_key = %s               
    ",
    $key
) ); 
 return($result);

    exit();

}

1 个答案:

答案 0 :(得分:-1)

你试过这个吗?

data: (JSON.stringify({
    action: "get-mata-value",        
    metakey: id
})),