Wordpress AJAX没有传递POST数据

时间:2016-09-28 15:13:34

标签: javascript php jquery ajax wordpress

我正在使用以下代码将AJAX集成到WordPress插件中:

PHP:

@interface mainVC(){
 float w;
 float h;
}
-(void)viewDidLoad {
 w = self.view.frame.size.width;
 h = self.view.frame.size.height; 
}
-(void)layoutSomeElements {

 float yOff = 0;

 UIView * someView = [UIView new];
 someView.frame = CGrectMake(0,yOff,w,30);
 [self.view addSubview:someView];

 yOff += 30.0f;    

 UIView * anotherView = [UIView new];
 anotherView.frame = CGRectMake(0,yOff,w,50);
 [self.view addSubview:anotherView];

 yOff += 50.0f;

 UIView * bottomView = [UIView new];
 bottomView.frame = CGRectMake(0,h-50,w,50);
 [self.view bottomView];
}

JS:

add_action( 'wp_ajax_nopriv_myajax-submit', 'myajax_submit' );
add_action( 'wp_ajax_myajax-submit', 'myajax_submit' );

function myajax_submit() {
    $amount = $_POST['amount'];
    $months = $_POST['months'];

    echo('<b>£'.$amount.' over '.$months.' months</b>');

    wp_die();
}

我遇到的问题是'amount'和'months'变量没有通过,这些变量是空白的,返回只是'过几个月'所以完全错过变量。

真的不确定这里的问题是什么,任何输入都会非常感激。

2 个答案:

答案 0 :(得分:1)

您没有正确发送数据。如果您检查了$_POST,则$_POST['data']

的值为。{1}}
jQuery("button.compareLoans").click(function() { 
       jQuery.post(
        MyAjax.ajaxurl,
        {
            action : "myajax-submit",
            postID : MyAjax.postID,
            amount : $( "input#loan-amount" ).val(),
            months : $( '#slider' ).slider( "value" ),
        },
        function( response ) {
            $("#content_update").html(response);
        }
    );
});

此外,为了安全起见,您应该使用noncescheck_ajax_referer

不要忘记你的变量服务器端{。}}。

答案 1 :(得分:0)

如果你想坚持使用属性'data',你可以尝试:

function myajax_submit() {
    $amount = explode('=', explode('&', $_POST['data'])[0])[1];
    $months = explode('=', explode('&', $_POST['data'])[1])[1];

    echo('<b>£'.$amount.' over '.$months.' months</b>');

    wp_die();
}

它只是解析 data 的字符串值,这将允许您通过数组获取 amount months 的值