2016-09-28 5 views
2

私は次のコードでプラグインワードプレスにAJAXを統合しています:WordpressのAJAX POSTデータを渡していない

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); 
     } 
); 
}); 

私が持っている問題があることです'amount'と 'months'変数が通過していない場合、これらは空白になり、戻り値は単純に '£以上の数ヶ月'になり、変数が完全に欠落します。

実際に問題がどのようなものかわからない場合、入力は非常に高く評価されます。

答えて

1

データを正しく送信していません。あなたがチェックした場合$_POSTあなたはまた、あなたがセキュリティのためcheck_ajax_referernoncesを使用する必要があります$_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); 
     } 
    ); 
}); 

の値を持つことになります。

validate and sanitize変数サーバー側も忘れないでください。

+0

ありがとうございます - 学校少年のエラー:) – AppleTattooGuy

+0

@JamesLeist喜んで助けてください。答えを正しいものとしてマークしてください。ありがとう。 – Jrod

0

あなたがプロパティに「データ」を使用してに固執することをお勧めします場合は、あなたが試すことができます:

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(); 
} 

それは単にあなたが値を取得できるようになるデータの文字列の値を、解析し、配列を介しておよびである。

関連する問題