从选择框中获取所有选项不是多个并将它们传递给php以在mysql中插入

时间:2018-06-21 17:51:54

标签: javascript php html mysql html5

<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循环将它们传递给数据库。请注意,我不希望上述选择框成为多选框。我只是想简单地将其中的所有选项传递给数据库。此外,我希望所有未选中的选项都未选中。请帮助我或告诉我是否有可能。

2 个答案:

答案 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变量。