我正在使用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();
}
答案 0 :(得分:-1)
你试过这个吗?
data: (JSON.stringify({
action: "get-mata-value",
metakey: id
})),