我很努力地寻找这个答案,但没有运气。
我在一个表单中有 3 个选择列表。第一个列表已经是表单的一部分,后两个列表是动态添加的。这些选择列表是名为 event_staff[] 的数组的一部分。
<select name="event_staff[]" class="event_staff">
<option value="1">Mark</option>
<option value="2">Sue</option>
</select>
<select name="event_staff[]" class="event_staff">
<option value="1">Mark</option>
<option value="2">Sue</option>
</select>
<select name="event_staff[]" class="event_staff">
<option value="1">Mark</option>
<option value="2">Sue</option>
</select>
用户可以从每个列表中选择一个人,然后通过 AJAX/Json 将其发送到 PHP 脚本,该脚本会迭代数组并将所选人员插入数据库。
我一生都不知道如何访问列表中选定的值并将它们作为数组发送到 PHP 脚本。
因为选择列表是动态创建的,所以我不使用 ID 来访问它们。相反,我依赖于通过名称访问它们的值。
select[name='event_staff[]']
我尝试过此代码,但警报返回空:
var event_staff = new Array();
$("select[name='event_staff[]']:selected").each(function() {
event_staff.push($this).attr('value');
});
alert(event_staff);
谢谢。
解决了以下问题,但不确定它是否漂亮:
var event_staff = new Array();
$('select[name="event_staff[]"] option:selected').each(function() {
event_staff.push($(this).attr('value'));
});
似乎我需要这个选项:selected。虽然这似乎没有创建一个数组,但我已经在分隔符上分解了 PHP 中的变量并以这种方式创建了数组。
最佳答案
var event_staff = [];
$("select[name='event_staff[]'] option:selected").each(function () {
event_staff.push( this.value );
});
alert(event_staff);
这是 fiddle :http://jsfiddle.net/Rx6Fk/
<小时/>如果您想要该人的姓名,请使用 .text()
:
var event_staff = [];
$("select[name='event_staff[]'] option:selected").each(function() {
event_staff.push( $.text(this) );
});
alert(event_staff);
这是 fiddle :http://jsfiddle.net/Rx6Fk/1/
<小时/>或者,您可以使用 jQuery 的 .map
方法:
var event_staff = $("select[name='event_staff[]'] option:selected").map(function() {
return $.text(this);
}).get();
alert(event_staff);
这是 fiddle :http://jsfiddle.net/Rx6Fk/2/
关于php - 使用 jQuery 获取表单数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9874291/