如何将多个 select 下拉数据值插入 sql table(在一个字段中)

How to insert multi select drop down data value into sql table(in one field)

如何将多个 select 下拉数据值插入 sql table(在一个字段中) 请在下面找到我项目中的附加图像。请帮助我

您可以将用户输入的值转换为字符串/Json 字符串并保存。 示例-

"["Oracle", "Bayan", "SAP"]"

在 select 框中使用带有 onchange 事件的 javascript 函数,您可以在其中将 selected 值修改为逗号分隔的字符串。 将此字符串保存在您的数据库中。

在检索它时,将字符串更改为数组并遍历选项以检查 selected 值。

看起来您正在构建一个 many-to-many 数据结构。您不应将 'many' 功能直接存储在 'projects' table 中。你应该在你的项目 table 中有一个 ProjectId,在你的功能 table 中有一个 FeatureId,然后对于许多 'ProjectFeature' table -对多 'FeatureId' 和 'ProjectId'.

如果您使用像 Entity Framework 这样的 ORM,并正确地建模您的数据结构,您将在您的项目中获得模型 类,让您查询 Project.Features 并返回一个可枚举的功能。

你的 JS 函数:

function getMultipleSelectedValue(a){
       var comma1=", ";
        var man12="";
        var man11="";
        for (var i1 = 0; i1 < a.options.length; i1++) {
        if(a.options[i1].selected){
        var man1=a.options[i1].value;
        var xz1=man1.trim();
        if(xz1!=""){
        man11=man11+man1+comma1;");
        }}}
        man11 = man11.replace(/,\s*$/, \"\");
      document.getElementById('hiddenfiled').value=man11; //here i am saving the value in a hidden field 
        }

您的 select 字段(请注意,我正在使用 servlet,这就是为什么有 out.println

String[] arrayOfString2 = rectohexcolorsnames.split("\s*,\s*");//split your comma separated string into an array

out.println("<select title=\"Rien de Sélectionné\" multiple required data-live-search=\"true\" data-live-search-style=\"startsWith\" class=\"selectpicker\" id=\"rectohex\" name=\"rectohex\" onchange=\"getMultipleSelectedValue(this)\">");
        while (resultSet7.next()) {
          String str16 = resultSet7.getString(1).trim();
         
          String str18 = "";
          boolean bool = false;
          for (int b = 0; b < arrayOfString2.length; b++) {
           String str17 = arrayOfString2[b].trim();
            if (str16.equals(str17)) {
              str18 = str16.replace("_", " ").trim();
              out.println("<option value=\"" + str16 + "\" selected>" + str18 + "</option>");
              bool = true;
            } 
          } 
          if (!bool) {
            str18 = str16.replace("_", " ").trim();
            out.println("<option value=\"" + str16 + "\" >" + str18 + "</option>");
          } 
        } 
        out.println("</select>");