我正在使用以下代码将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'变量没有通过,这些变量是空白的,返回只是'过几个月'所以完全错过变量。
真的不确定这里的问题是什么,任何输入都会非常感激。
答案 0 :(得分:1)
您没有正确发送数据。如果您检查了$_POST
,则$_POST['data']
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);
}
);
});
此外,为了安全起见,您应该使用nonces和check_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 的值