name-select.blade.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. ?>
  3. <style type="text/css">
  4. #sg-device-select-app {
  5. display: inline;
  6. }
  7. </style>
  8. <div id="sg-device-select-app">
  9. <div class="layui-inline">
  10. <div class="layui-input-inline">
  11. <select name="device_name_id" lay-filter="device_name_id">
  12. @foreach($options as $option)
  13. <option value="{{$option->value}}" {{$option->value == $device_name_id ? 'selected' : ''}}>{{$option->text}}</option>
  14. @endforeach
  15. </select>
  16. </div>
  17. </div>
  18. {{--@if(!isset($hide_spec))--}}
  19. {{--<div class="layui-inline">--}}
  20. {{--<div class="layui-input-inline">--}}
  21. {{--<select name="spec_id" lay-filter="spec_id">--}}
  22. {{--</select>--}}
  23. {{--</div>--}}
  24. {{--</div>--}}
  25. {{--@endif--}}
  26. </div>
  27. <script>
  28. $(function() {
  29. layui.use(['form'], function() {
  30. let form = layui.form;
  31. let device_names = JSON.parse('{!! $options !!}');
  32. let specs = [];
  33. let device_name_id = '{{ $device_name_id }}';
  34. let hide_spec = '{{ isset($hide_spec) ? "yes" : "no" }}';
  35. form.on('select(device_name_id)', function(data) {
  36. device_name_id = data.value;
  37. updateSpec()
  38. });
  39. updateSpec();
  40. function updateSpec() {
  41. let name_index = getIndex(device_names, device_name_id);
  42. specs = device_names[name_index].specs;
  43. let options = '';
  44. for(let i = 0; i < specs.length; ++i) {
  45. options += '<option value=' + specs[i].value + '>' + specs[i].text + '</option>'
  46. }
  47. $("select[name='spec_id']").html(options);
  48. form.render('select');
  49. }
  50. function getIndex(list, id) {
  51. id = parseInt(id);
  52. for(var i = 0; i < list.length; ++i) {
  53. if(list[i].value === id) return i;
  54. }
  55. return 0;
  56. }
  57. })
  58. })
  59. </script>