首页 > 解决方案 > 如何根据下拉列表中的选择显示表格值?

问题描述

我想根据包含产品 ID 的下拉菜单的选择来显示(在输入文本字段上)产品的描述(这是一个 MEDIUM TEXT 字段类型)。棘手的部分是我想通过产品 ID 查询我的数据库。

我可以使用 Javascript 在输入文本字段上显示产品描述,但我想通过产品 ID 查询我的数据库。

我有一个非常简单的数据库:product_ID | product_descrip "product_descrip" 是一种 MEDIUM TEXT 字段类型,每个产品最多可以包含 16Mb。

我的控制器:

public function findProduct() {
    $products = Product::All();

    return view("updatingStock", compact("products"));
  }

public function stockUpdate(Request $req) {

  $selectedProduct = Product::where("product_ID", "=", $req["productsOption1"])->first();

  $selectedProduct->update();

  return redirect("/updatingStock");
}

我的观点:

<select class="form-control" name="productsOption1" id="dropdown1">
      <option value="" selected>Product...</option>
    @foreach ($products as $product)
      <option value={{$product["product_descrip"}}>{{$product["product_ID"]}}</option>;
    @endforeach
  </select>

<input class="form-control" id="myproduct" type="text" placeholder=""  readonly>

我的脚本:

<script type="text/javascript">
            var oneproduct = document.getElementById('myproduct1');
            var mydropdown = document.getElementById('dropdown1');

            mydropdown.onchange = function(){
                  myproduct.value = this.value;
            }
        </script>

如您所见,我可以在输入只读字段上显示产品描述,但我需要通过 product_ID 查询我的数据库,而不是通过 product_descrip

万分感谢!

标签: javascriptlaraveleloquent

解决方案


检查这个

然后将您的选择 vlaue 更改为 id,在 js 中使用您的数据启动数组,如下所示

var Products = {!!json_encode($selectedProduct  -> toArray()) !!}

然后使用 js fiddle 中的代码


推荐阅读