[英]Wordpress AJAX not passing POST data
我正在使用以下代码将 AJAX 集成到 WordPress 插件中:
PHP:
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();
}
JS:
jQuery("button.compareLoans").click(function() {
jQuery.post(
MyAjax.ajaxurl,
{
action : "myajax-submit",
postID : MyAjax.postID,
data: "amount="+$( "input#loan-amount" ).val()+"&months="+$( "#slider" ).slider( "value" )
},
function( response ) {
$("#content_update").html(response);
}
);
});
我遇到的问题是“金额”和“月数”变量没有通过,它们作为空白通过,回报只是“月数英镑”,因此完全错过了变量。
真的不确定这里的问题是什么,任何输入都将不胜感激。
您没有正确发送数据。 如果您检查了$_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);
}
);
});
此外,为了安全起见,您应该使用带有check_ajax_referer 的随机数。
不要忘记验证和清理您的变量服务器端。
如果您可能想坚持使用属性“数据”,您可以尝试:
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的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.