在我的表单中,我有很多输入类型=" radio" 字段,这些字段由PHP循环代码生成。每个都有自己的名称,这是一个数组。这些输入字段的值通过AJAX处理。问题是我不确定如何在Javascript或jQuery中读取这些输入字段的值。
这是我的表格代码(简化)。
<form id="_user_roles_form" method="post" class="form-horizontal">
<p><strong>Manager</strong></p>
<div class="form-group row">
<label class="col-lg-6 control-label">Register Companies</label>
<div class="col-lg-6">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default active">
<input type="radio" name="_data[Manager][publish_companies]" value="1"/> True
</label>
<label class="btn btn-default ">
<input type="radio" name="_data[Manager][publish_companies]" value="0"/> False
</label>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-6 control-label">Edit Companies</label>
<div class="col-lg-6">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default active">
<input type="radio" name="_data[Manager][edit_companies]" value="1"/> True
</label>
<label class="btn btn-default ">
<input type="radio" name="_data[Manager][edit_companies]" value="0"/> False
</label>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-6 control-label">Edit Others Companies</label>
<div class="col-lg-6">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default active">
<input type="radio" name="_data[Manager][edit_others_companies]" value="1"/> True
</label>
<label class="btn btn-default ">
<input type="radio" name="_data[Manager][edit_others_companies]" value="0"/> False
</label>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-6 control-label">Edit Customers</label>
<div class="col-lg-6">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default ">
<input type="radio" name="_data[Employee][edit_customers]" value="1"/> True
</label>
<label class="btn btn-default active">
<input type="radio" name="_data[Employee][edit_customers]" value="0"/> False
</label>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-6 control-label">Edit Others Customers</label>
<div class="col-lg-6">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default ">
<input type="radio" name="_data[Employee][edit_others_customers]" value="1"/> True
</label>
<label class="btn btn-default active">
<input type="radio" name="_data[Employee][edit_others_customers]" value="0"/> False
</label>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-6 control-label">Delete Customers</label>
<div class="col-lg-6">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default ">
<input type="radio" name="_data[Employee][delete_customers]" value="1"/> True
</label>
<label class="btn btn-default active">
<input type="radio" name="_data[Employee][delete_customers]" value="0"/> False
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-12">
<button type="submit" class="btn btn-default">Confirm</button>
</div>
</div>
</form>
在PHP中,我可以使用 _data [] [] 作为数组变量,但我需要将其读入一个javascript变量,以便我可以将其传递给AJAX。通常我是通过 jQuery(&#39; #_ ID&#39;)。val()来实现的,但在这种情况下它并不起作用。我觉得我需要声明一个javascript数组变量,用 type =&#34; radio&#34;找到所有(和每个)HTML元素。 &安培; name =&#34; _data - *&#34; ,并将找到的每个元素的名称和值都推送到数组中。我不确定如何解决这个问题。
非常感谢您的帮助。谢谢。
答案 0 :(得分:1)
如果要发送所有值,请使用serializeArray()函数。
var formData = jQuery('#_user_roles_form').serializeArray();
如果你正在使用WordPress,你可能还需要:
formData.push({name: 'action', value: 'yourAjaxAction'});
// if you have set yourself up to use nonce
// formData.push({name: 'nonce_data', value: yourNonceValue });
jQuery.ajax({
url : ajaxUrl, // global ajax url
type : 'post',
data : formData,
success : function(data, textStatus, jqXHR) {
// etc etc