<select class="myselect" id="myselect" name="mul_cat" onChange="catChange();" multiple="multiple">
<option value="" selected>-Select-</option>
<option value="Truck">Truck</option>
<option value="Car">Car</option>
<option value="Van">Van</option>
<option value="Bus">Bus</option>
</select>
<?php
while(($mul_cats = each($mul_cat))) {
$mul_cats = trim($mul_cats['value']);
//insert into vehicles........
}
?>
我正在尝试发布上面所有的select选项,并使用上面的while循环将它们传递给数据库。请注意,我不希望上述选择框成为多选框。我只是想简单地将其中的所有选项传递给数据库。此外,我希望所有未选中的选项都未选中。请帮助我或告诉我是否有可能。
答案 0 :(得分:1)
尝试以下逻辑。
使用JQuery获取选择下拉列表的所有选项(不是多个),并将它们存储在带有逗号分隔符的隐藏字段中。现在获取该值,使用逗号分隔符将其分解,并将其存储在数据库中。让我们看看:-
<script>
$(document).ready(function(){
$('#myselect').each(function(){
optionValues.push($(this).val());
});
$('#result').val(optionValues);
});
</script>
<html>
<input type="hidden" id="result" />
</html>
<?php
//Get the values of the drop-down in an array and run a loop to insert all the values of the array in a database
?>
答案 1 :(得分:0)
假设您完全控制了标记,则可以执行以下操作...
$categories = ['Truck', 'Car', 'Van', 'Bus'];
<select multiple="multiple" name="mul_cat[]">
<? foreach($categories as $value) { ?>
<option value=<?= $value; ?>></option>
<? } ?>
</select>
这样,您已经有了类别,并且可以根据需要映射它们,而无需使用JavaScript。
否则,您将需要将所有内容填充到隐藏的输入中或为mul_cats添加POST变量。