【问题标题】:Why The Select Option Didn't Showing Number?为什么选择选项没有显示数字?
【发布时间】:2020-10-21 09:57:02
【问题描述】:

我有一些问题。我的库存产品尺寸为“100-199”的选择选项仅显示此:

如果我的产品有 1-99 和 200-999 的库存,我没有收到此错误。选择选项很好并显示一个数字。在我的例子中, stok s 和 stok m 显示数字的选择选项。

这是我的数据库:

这是我的控制器:

$data['stock'] = $this->Product_model->get_product_all($id);

这是我的模特:

public function get_product_all($id){    
    $this->db->select('products_shirt.*');
    $this->db->from('products_shirt');    
    $query = $this->db->get();
    return $query->row_array();

这是查看代码:

<select name="product_size" id="product_size" class="form-control" onchange="proses_stock()" style="width:95%">
    <option value="0">Select Size:</option>
    <option value="stock_s">s</option>
    <option value="stock_m">m</option>
    <option value="stock_l">L</option>
</select>
<select name="product_stock" id="product_stock" class="form-control" style="width:95%">
                      <option value="0">0</option>
</select>

这是 JavaScript 代码:

function proses_stock() {
        var product_stock = document.getElementById("product_size").value;
        var stocks = "<?php echo $stock['stock_s'];?>";
        var stockm = "<?php echo $stock['stock_m'];?>";
        var stockl = "<?php echo $stock['stock_l'];?>";

        if(product_stock == "0") {
          document.getElementById("product_stock").innerHTML = "<option value='0'>0</option>";
        } else if (product_stock == "stock_s") {
          disable_values(stocks); //add till this option

        } else if (produk_stock == "stock_m") {
          disable_values(stockm); //add till this option

        } else {
        //if large size select
        //do somthing ..
        disable_values(stockl); //add till this option
        }

      }


      function disable_values(end) {
        var gets = document.getElementById("product_stock");
        var data="";
        var limbuy = "<?php echo $stock['minorder'];?>";
        var limbuys = 4;
        //loop through all options
        //for (var i = limbuys; i <= end; i++) {
        for (var i = limbuy; i <= end; i++) {
        //append options
        data +="<option value="+i+">"+i+"</option>";
        }
        //add data to select box
       gets.innerHTML= data;
        
      }

当我使用var limbuys 所以var i = limbuys; 我得到正常的方式,如果我改变var limbuy 所以var i = limbuy; 并从数据库minorder 获取数据编号我发现这个问题。如果示例“在 stok L 中只有 100-199 库存”,我就会收到这个错误(看图片)。如果我选择尺码 s(最大库存 80)或尺码 m(最大库存 250)并且我使用 limbuy 很好,为什么?

我正在使用带有 bootsrap 的 codeigniter。感谢帮助

【问题讨论】:

  • 在你的情况下,如果你的股票在 100-199 得到这个错误?所以对于 stock s 和 stock m 选择的选项很好吗?
  • 是的,如果库存 s 有 123 或 164(100-199),则选择的选项是错误,不显示数字
  • 你检查过limbuy里面有什么吗?做一个alert(limbuy) 看看它是否给你所需的价值。
  • 如果您使用limbuys,L 号库存 (100-199) 的价值是否正确?

标签: javascript php codeigniter bootstrap-4


【解决方案1】:

这是因为你的limbuy 和你的end 是一个字符串

你可以试试

for (var i = parseInt(limbuy); i <= parseInt(end); i++) {
    data +="<option value='"+i+"'>"+i+"</option>";
}

【讨论】:

    【解决方案2】:
    <div class="form-group form-md-line-input form-md-floating-label">
        <select class="form-control edited" name="rating" id="form_control_1">
          <option value="<?php echo $manage->rating;?>"><?php echo $manage->rating;?></option>
          <option value="0.5">0.5</option>
          <option value="1">1</option>
          <option value="1.5">1.5</option>
        </select>
    </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-12
      • 2017-09-22
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多