[英]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.