我對jquery很新,似乎無法解決這個問題。Jquery - 從動態表單提交中創建關鍵值對
我需要弄清楚如何在下面的代碼中從具有表單輸入動態值的表單中動態設置鍵值對。如果我手動添加鍵值對,代碼將起作用,但我並不總是知道表單名稱是由用戶創建的。
請參閱下面代碼中間部分的註釋。我試圖使用.serialize()的值作爲$ _POST值傳遞。
這是我目前從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;
});
});
謝謝!
如何使用jQuery獲取您感興趣的表單元素/輸入,然後獲取這些值。例如,如果表單的ID是'the_form',那麼可以執行以下操作:'$('#the_form input')'。 – HartleySan
問題是,我不知道表單提交之前將命名的表單輸入是什麼,或者某些輸入名稱將由用戶即時創建。我需要在提交表單時提取名稱和值,然後傳遞這些值。 –
jQuery有一些幫助者序列化你的表單。 http://api.jquery.com/serializeArray/ – elclanrs