使用数据库中的 jquery 动态复选框 html

2024-02-09

我有一些像这样的html:

<div class="control-group" id="tipePrinter">
    <label class="control-label">Tipe Printer :</label>
    <div class="controls">
       <select id="selectPrinter">

       </select>
     </div>
</div>

<div class="control-group" id="tipeInk">
    <label class="control-label">Tipe Tinta :</label>
    <div class="controls" id="labelInk">
       // Dynamic checkbox
    </div>
</div>

如果我的数据库中有这样的表:

+-------------------+--------------+--------------+
|       Type        |     Color    |     Black    |
+-------------------+--------------+--------------+
|       F2410       |     HP703    |     HP60     |
|       810C        |     HP49     |     HP20     |
|       F2410       |     HP78     |     HP45     |
|       F2410       |     HP17     |     HP15     |
+-------------------+--------------+--------------+

我使用 jquery 从上面的表中获取数据,

if (id === "HPD") { //ini pake tinta
     $("#selectPrinter").empty();

     var types = [];

    $.ajax({
       url: '<?php echo base_url() . 'control_printer/getTinta/' ?>',
       type: 'POST',
       data: {id: id},
       dataType: 'json',
       success: function(obj) {
            types = obj;
            $('#tipePrinter').show();
            $("#selectPrinter").html("");
            for (var i = 0; i < types.length; i++){
               var printerTypes = types[i].type.split(",");
                   for (var c = 0; c < printerTypes.length; c++){
                       $("#selectPrinter").append($("<option></option>").val(i).text(printerTypes[c].trim()));
                    }
            }
        }
     });

     $("#selectPrinter").change(function() {
         // This is the manipulation
     });

并将返回一个 json,并将其存储到如下变量中:

[
{
    "id_printer": "HPD",
    "type": "F2410",
    "color": "HP703",
    "black": "HP60"
},
{
    "id_printer": "HPD",
    "type": "810C",
    "color": "HP49",
    "black": "HP20"
},
{
    "id_printer": "HPD",
    "type": "1220C",
    "color": "HP78",
    "black": "HP45"
},
{
    "id_printer": "HPD",
    "type": "840C",
    "color": "HP17",
    "black": "HP15"
}
]

如何使动态复选框表单字段颜色和黑色。例如,如果用户选择 F2410,那么会显示两个复选框,即 HP 703 和 HP60 ?

也许,会在 div labelInk 中添加一些 html,如下所示:

<label class="checkbox inline">
  <input type="checkbox" name="colors[]" id="color" value="HP703" /> HP703</label>
<label class="checkbox inline">
  <input type="checkbox" name="colors[]" id="black" value="HP60"/> HP60 </label>

var types = [{
  "id_printer": "HPD",
  "type": "F2410",
  "color": "HP703",
  "black": "HP60"
}, {
  "id_printer": "HPD",
  "type": "810C",
  "color": "HP49",
  "black": "HP20"
}, {
  "id_printer": "HPD",
  "type": "1220C",
  "color": "HP78",
  "black": "HP45"
}, {
  "id_printer": "HPD",
  "type": "840C",
  "color": "HP17",
  "black": "HP15"
}]


$(document).ready(function($) {
  //user selected the HPD
  //this should be in the success function of the Ajax call
  $("#selectPrinter").html("");
  for (var i = 0; i < types.length; i++) {

    var printerTypes = types[i].type.split(",");
    for (var c = 0; c < printerTypes.length; c++) {
      $("#selectPrinter").append($("<option></option>").val(i).text(printerTypes[c].trim()));
    }
    
  }
  setLabelsToPage.call($("#selectPrinter")[0]);

  //the click handler to the printer type changer should be outside the ajax call
  $("#selectPrinter").on("change", setLabelsToPage)


});

function setLabelsToPage() {
  var value = $(this).val();
  $(".checkBox_controls").empty();
  var options = [];

  if (types[value].color || types[value].black) {
    types[value].color ? options.push(["color", types[value].color]) : null;
    types[value].black ? options.push(["black", types[value].black]) : null;
    for (var i = 0; i < options.length; ++i) {
      $(".checkBox_controls").append($("<input />").attr("name", "color[]").attr("type", "checkbox").val(options[i][1]).attr("id", "checkbox_" + options[i][0]));
      $(".checkBox_controls").append($("<label></label>").attr("for", "checkbox_" + options[i][0]).html(options[i][1] + " (" + options[i][0] + ")"));
    }
  }


}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="control-group" id="merkPrinter">
  <label class="control-label" for="selectError">Merk Printer :</label>
  <div class="controls">
    <select id="selectError" class="chzn-done" data-rel="chosen" style="display: block;">
      <option value="BRO">BROTHER</option>
      <option value="EDM">EPSON DOT MATRIK</option>
      <option value="EPD">EPSON DESKJET</option>
      <option value="HPD" selected>HP DESKJET</option>
      <option value="HPL">HP LASERJET</option>
      <option value="HPO">HP OFFICEJET</option>
      <option value="KM">KOINICA MINOLTA</option>
      <option value="PNS">PANASONIC</option>

    </select>
  </div>
</div>

<div class="control-group" id="tipePrinter">
  <label class="control-label">Tipe Printer :</label>
  <div class="controls">
    <select id="selectPrinter">

    </select>
    <div class="checkBox_controls">

    </div>

  </div>
</div>

我对上一个问题采取了类似的方法。然而,为了分配标签做了一些细微的调整。当没有从数据库检索到颜色/黑色时,相应的复选框将不会显示在页面上。

我将更改函数与赋值行分开。这样我就可以与更改事件分开调用该函数,以在填充选择时显示第一个选项。

setLabelsToPage.call($("#selectPrinter")[0]);

该行使用以下方式传递对选择的引用call.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用数据库中的 jquery 动态复选框 html 的相关文章

  • 在 JQuery ajax 中,如何正确处理 HTTP 408 错误?

    我使用设置了 错误 选项的 JQuery Ajax 调用 在我的 错误 方法中 我希望以不同于普通 HTTP 500 的方式处理 HTTP 408 问题是 jxhr statusCode 为 0 status 值只是 error 但在 fi
  • 刷新页面后保留输入值

    我有一个带有输入字段的表单 该输入包含一个下拉菜单 从数据库中读取信息 如果用户输入值 并且当他到达下拉菜单时 他没有找到他想要的内容 他会转到另一个页面将此信息添加到下拉菜单 然后转到第一页继续输入信息 如果他转到另一个页面向下拉菜单添加
  • 如何将对象从 rake 任务传递给 Rabl 视图

    我正在尝试使用 rabl 从 rake 任务创建 json 文件 下面我有一个简化版本来测试 当我通过 url 查看 articles json 或 articles 2 json 时 我得到了预期的 json 响应 但是当我尝试通过 ra
  • 为什么该消息没有出现在 Chrome 中的手风琴上方?

    我正在尝试新的 HTML5 验证 当我尝试使用required里面的属性
  • Javascript 制作音频 blob

    我正在测试 html 音频标签 我想制作音频 blob url 就像 youtube 或 vimeo 那样 并将其添加到 src 开始播放音频 我一直在测试new Blob and URL createObjectURL 但我不知道如何使用
  • 实体创建无用的 id 字段

    我有一个CrudRepository与两个实体 Problem 特征实体总是创建一个附加的id数据库中的字段但未选择正确的characteristic id要生成的字段JSON machine entity machine id name
  • 将 RequestBody json 转换为对象 - Spring Boot

    我是 java 开发的初学者 但之前有 PHP 和 Python 等编程语言的经验 对于如何进行 Spring Boot 的开发几乎没有什么困惑 我正在开发一个rest API 它有以下请求 key value key1 value1 pl
  • 使用淘汰赛动态显示/隐藏元素

    我有一个表 有四列 即代码 名称 数量和价格 其中 我想动态更改数量列的内容 元素 通常 它应该显示其中显示数量的元素 当用户单击元素时 我想显示该元素 以便用户可以编辑数量 我正在尝试按照 示例2 来实现淘汰赛文档链接 http knoc
  • 获取输入图像类型选择的图片并加载到图像标签中

    所以 我有一个用于上传 img 文件的输入框 我想要做的是从该数据 或选定的源 中获取数据并将其路由到图像标签的 src 属性中 像这样的东西 http jsfiddle net QC2c4 http jsfiddle net QC2c4
  • 保存下拉列表中的值

    这是我的情况 我有 2 页 一页用于选择值 一页用于编辑与该值关联的数据库相关内容 现在 我对如何将从下拉列表中选择的值保存到 PHP 的变量中一无所知 并且已经进行了相当多的研究 有任何想法吗 HTML
  • 清理 MongoDB 的输入

    我正在为 MongoDB 数据库程序编写 REST 接口 并尝试实现搜索功能 我想公开整个 MongoDB 接口 我确实有两个问题 但它们是相关的 所以我将它们放在一篇文章中 使用 Python json 模块解码不受信任的 JSON 是否
  • 使用 Overflow:auto 获取 div 的高度;

    我有一个 div 高度 100px 和溢出 auto 内容是动态的 我想滚动底部的div 我尝试过 chat content scrollTop chat content height 但如果内容大于 100px chat content
  • CreateJs Canvas 形状在 Windows Phone 上丢失坐标

    我正在制作一个 Createjs 和 html5 项目 在其中绘制一个形状 红色圆圈 当我单击圆圈时它会发出警报 它在所有台式机和 Android 手机上都能正常工作 除非我在 Windows Phone 中打开它 否则它在普通屏幕上工作正
  • 如何在使用类型分散时将箭头添加到行尾

    如何在 y 不等于 0 且系列类型以线宽 2 分散的情况下正确地将箭头添加到行的每一端 在这里我可以看到箭头已添加但未正确添加 请看这个 部分工作小提琴 http jsfiddle net vnYCX 这是我的 JS 最初的原型是由 sta
  • jQuery 模板插件:如何创建双向绑定?

    我开始使用 jQuery 模板插件 微软创建的 但现在我面临这个问题 模板用于绑定到对象数组的一堆表单 当我更改其中一个表单上的某些内容时 我希望更新绑定的对象 但我不知道如何自动执行该操作 这是一个简单的例子 现实生活中的模板和对象要复杂
  • 将 div 附加到另一个 div 的右侧

    我有一个 div 它就像一个容器 里面有 2 个图像 一张图像位于 div 的左侧 另一张图像位于右侧 我的容器是Bootstrap的容器 它们都用 div 包裹 并且div s position is fixed 我的问题是我无法找到要附
  • 检测 html 选择框上的编程更改

    有没有办法让 HTML 选择元素在每次以编程方式更改其选择时调用函数 当使用 JavaScript 修改选择框中的当前选择时 IE 和 FF 都不会触发 onchange 此外 更改选择的 js 函数是框架的一部分 因此我无法更改它以在结束
  • 从“class”名称中删除/替换不需要的前缀信息

    我正进入 状态style从后端 它带有不需要的前缀 我会替换没有前缀的相同内容 正确的方法是什么 这就是我得到的
  • 如何将 JSON 文本转换为 PHP 关联数组

    我将以下 JSON 对象存储在文本文件 data txt 中 player black time 0 from 2c to 3d 我使用 php 阅读 问题 有没有简单的方法可以转换 data到 PHP 关联数组 我尝试过使用json de
  • 文件和目录条目 API 在 Chrome 中损坏?

    我正在尝试使用文件和目录条目 API 创建一个文件上传器工具 该工具允许我将文件和目录的任意组合放入浏览器窗口中 以供读取和上传 我完全意识到 可以通过使用文件输入元素来实现类似的功能webkitdirectory已启用 但我正在测试一个用

随机推荐