簡體   English   中英

Wordpress AJAX 不傳遞 POST 數據

[英]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的字符串值,這將允許您通過數組獲取amountmonths的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM