所以我已经学会了如何动态地向数组添加元素 - 如何删除它们?
的jQuery
$(document).on('change blur', '.roomFac', function () {
var park = $("#park2").val();
var lecturestyle = $("#lecture_style2").val();
var roomstructure = $("#room_structure2").val();
var groupsize = $("#groupSize2").val();
var facilities = "";
$('select[name*=roomFac]').each(function () {
facilities += $(this).val();
facilities += ",";
});
var dataString = 'park=' + park + '&' + 'lecturestyle=' + lecturestyle + '&' +
'roomstructure=' + roomstructure + '&' + 'groupsize=' + groupsize + '&' +
'facilities=' + facilities;
$.ajax({
type: "POST",
url: "process_timetableMon2.php",
data: dataString,
cache: false,
success: function (html) {
$('#mon').html(html);
}
});
});
process_timetableMon2.php
$array = explode(",", $_POST["facilities"]);
for($i = 0; $i < count($array)-2; $i++){
echo $array[$i].'<br>';
}
我在这里上传了一些代码:http://jsfiddle.net/kfm5b/3/
答案 0 :(得分:0)
我建议您不要动态创建更多下拉菜单,而应保持简单并坚持使用multiple="multiple"
属性的一个下拉菜单。
<select class="roomFac" name="roomFac" id="roomFac" multiple="multiple">
<option selected="selected" value="">Any</option>
<option value="opt1">Opt 1</option>
<option value="opt2">Opt 2</option>
</select>
在JavaScript中,您不再需要遍历所有下拉菜单及其选定的项目值。为简单起见,我保留了大部分结构,但我建议您将值存储在对象中,而不是手动构建数据字符串。这更优雅,传递数组更容易,就像一个字符串一样,你必须使用多个array[]=...
字符串。
$(document).on('change blur', '.roomFac', function () {
var park = $("#park2").val();
var lecturestyle = $("#lecture_style2").val();
var roomstructure = $("#room_structure2").val();
var groupsize = $("#groupSize2").val();
var facilities = $('#roomFac').val().join( ',' );
var dataString = 'park=' + park + '&' + 'lecturestyle=' + lecturestyle + '&' +
'roomstructure=' + roomstructure + '&' + 'groupsize=' + groupsize + '&' +
'facilities=' + facilities;
$.ajax({
type: "POST",
url: "process_timetableMon2.php",
data: dataString,
cache: false,
success: function (html) {
$('#mon').html(html);
}
});
});