私はjqueryにかなり慣れていないので、この問題を理解できないようです。
フォーム入力の動的な値を持つフォームから、以下のコードでキーと値のペアを動的に設定する方法を理解する必要があります。キーと値のペアを手動で追加すると、コードは機能しますが、ユーザーが作成したフォーム名がどうなるかは常にわかりません。
以下のコードの中央セクションにある注意事項を参照してください。$_POST 値として渡すために .serialize() の値を使用しようとしています。
var formValues から現在取得している値は次のとおりです。
ID=10&user_login=test9&wplp_referrer_id=&&block_unblock=u
ただし、次を使用して関数の値を取得しようとすると:
$user_id = $_POST['ID'];
「10」の ID が $user_id に設定されていません。これは、シリアル化された結果を渡すために使用している構文またはメソッドが以下で正しくないことを示しています。
jQuery(document).ready( function($) {
$("#wplp_edit_member").submit( function() {
var formValues = $("#wplp_edit_member").serialize(); //Get all the form input values
alert(formValues); //Check form values retrieved for testing only
var numbers = /^[0-9]+$/;
// Validate fields START
var wplp_referrer_id = $("#wplp_referrer_id").val();
if( !wplp_referrer_id.match(numbers) ) {
alert("Please enter a numeric value");
return false;
}
// Validate fields END
$("#ajax-loading-edit-member").css("visibility", "visible");
// Post data to ajaxurl
$.post(ajaxurl, {
action: "wplp_edit_member", //Call the PHP function to update/save form values
data: formValues, //Use data to pass form field values as $_POST values to the function above
// No More manual inputs of form fields to be passed
//ID:$("#ID").val(),
//user_login:$("#user_login").val(),
//wplp_referrer_id:$("#wplp_referrer_id").val(),
//block_unblock:$("#block_unblock").val(),
},
// Success
function(data) {
$("#ajax-loading-edit-member").css("visibility", "hidden");
//alert("Member Updated");
//document.location.reload();
}
);
return false;
});
});
ありがとう!