我对 jquery 很陌生,似乎无法解决这个问题。
我需要弄清楚如何从具有表单输入动态值的表单中动态设置下面这段代码中的键:值对。如果我手动添加键:值对,则代码有效,但我并不总是知道用户创建的表单名称将是什么。
请参阅下面代码中间部分的注释。我正在尝试使用 .serialize() 中的值作为 $_POST 值传递。
这是我目前从 var formValues 获得的值:
ID=10&user_login=test9&wplp_referrer_id=&&block_unblock=u
但是,当我尝试使用以下方法提取函数中的值时:
$user_id = $_POST['ID'];
$user_id中没有设置'10'的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;
});
});
谢谢!