Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用下拉菜单显示一个数据表或另一个数据表_Javascript_Jquery_Wordpress_Datatable - Fatal编程技术网

Javascript 使用下拉菜单显示一个数据表或另一个数据表

Javascript 使用下拉菜单显示一个数据表或另一个数据表,javascript,jquery,wordpress,datatable,Javascript,Jquery,Wordpress,Datatable,我有一个wordpress网站,这两个数据表正常工作和显示,但我尝试合并一个下拉列表,作为一个选择,可以查看一个表或另一个表,但不能同时查看两个表 下面是显示第一个表和隐藏第二个表的当前代码,尽管它只隐藏数据,而不隐藏第二个表的datatable搜索和页面选项。问题是下拉菜单根本不起作用。如果我做了一个选择,它只会显示在框中,但页面上没有任何变化 同样,我要做的就是在页面加载时显示mytable,并有一个包含mytable和mytableSurvey的下拉列表,以及我选择的应该显示的列表 <

我有一个wordpress网站,这两个数据表正常工作和显示,但我尝试合并一个下拉列表,作为一个选择,可以查看一个表或另一个表,但不能同时查看两个表

下面是显示第一个表和隐藏第二个表的当前代码,尽管它只隐藏数据,而不隐藏第二个表的datatable搜索和页面选项。问题是下拉菜单根本不起作用。如果我做了一个选择,它只会显示在框中,但页面上没有任何变化

同样,我要做的就是在页面加载时显示mytable,并有一个包含mytable和mytableSurvey的下拉列表,以及我选择的应该显示的列表

<select name='tables' id='select-tables'>
<option value="mytable">Survey Test Table</option>
<option value="mytableSurvey">Survey Only</option>
</select>

//This is the code for the dropdown 

<script type="text/javascript"   src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js">
<script type="text/javascript">
(function($) {
$(document).on('change' , '#select-tables', function(){
  var table = $(this).val();
 $('#' + table).show();
 $('table').not('#' + table).hide();
}).change();
}(jQuery));
</script>

<script type="text/javascript">
(function($) {
$(document).ready(function(){
$('#mytable').DataTable();
$('#mytableSurvey').DataTable();
$('.dataTable').wrap('<div class="dataTables_scroll" />');
});
}(jQuery));
</script>
你需要使用

var table = $(this).val();
而不是

var table = $(this).find('option:selected');
所以你的代码应该是

<script type="text/javascript">
$(document).ready(function() {
   $('#mytable').DataTable();
   $('#mytableSurvey').DataTable();
   $('.dataTable').wrap('<div class="dataTables_scroll" />');

   // select change event
   $(document).on('change' , '#select-tables', function(){
     var table = $(this).val();
     $('#' + table +'_wrapper').show();
     $('[id$="_wrapper"]').not('#' + table +'_wrapper').hide();
    }).change();
});
</script>
先前代码


有控制台错误吗?我正在WP中使用调试器,因为我不在本地服务器上,但没有看到任何调试器。页面在其周围也正常运行,因此不会导致任何崩溃;而不是var table=$this.find'option:selected'@Mohamed Yousef你从你的回答中得到我的最新消息了吗?我的代码有点问题,没有完全从itI中得到结果。我尝试了这个,它仍然有}jQuery;换钱之后,对吗?这就是我运行它的方式,它仍然不会从中加载选择box@TomN. 答案已更新。。以上代码应该可以很好地工作。我用当前代码更新了我的原始问题。我再次尝试了你给我的东西,但它根本无法构建数据表。只是简单的html表。一旦我用/script和标记拆分代码,表将再次显示,但没有下拉功能。@TomN。事实上,变化会帮你做到这一点。。但是,尽管没有,但您可以像以前一样使用.hide和.show手动创建。。或者您可以复制/粘贴我的代码并尝试again@TomN. 您可以通过添加mytableSurvey_包装{display:none;}来使用css,而不是隐藏和显示
<script type="text/javascript">
    $(document).ready(function() {
       $('#mytable').DataTable();
       $('#mytableSurvey').DataTable();
       $('.dataTable').wrap('<div class="dataTables_scroll" />');

       // select change event
       $('#select-tables').on('change', function(){
         var table = $(this).val();
         $('#' + table).show();
         $('table').not('#' + table).hide();
        }).change();
    });
  </script>