【问题标题】:(php/jquery) hide and show checkboxes according to another checked checkbox value(php/jquery) 根据另一个选中的复选框值隐藏和显示复选框
【发布时间】:2016-07-22 01:14:42
【问题描述】:

我的数据库中有一个这样的表:

------------------------------
| ID_1         | ID_2        |
------------------------------
| A            | 1           |
| A            | 2           |
| A            | 3           |
| B            | 1           |
| B            | 2           |
| B            | 5           |
| C            | 1           |
| C            | 4           |
| C            | 3           |
------------------------------

我有一些类似这样的 ID_1 复选框

<input class="ID_1" type="checkbox" value="A">
<input class="ID_1" type="checkbox" value="B">
<input class="ID_1" type="checkbox" value="C">

每次我检查 ID_1 复选框时,我都会尝试这样做,ID_2 复选框将显示,这取决于我根据上表检查的 ID_1 复选框。 所以如果我检查了两个复选框

<input class="ID_1" type="checkbox" value="A" checked>
<input class="ID_1" type="checkbox" value="B" checked>
<input class="ID_1" type="checkbox" value="C">

它会像这样显示:

<input class="ID_2" type="checkbox" value="1">
<input class="ID_2" type="checkbox" value="2">
<input class="ID_2" type="checkbox" value="3">
<input class="ID_2" type="checkbox" value="5">

这可能使用 jquery 吗?我需要你的帮助

【问题讨论】:

  • 每个元素的 id 相同 ???它的坏坏坏,而不是使用类....
  • 应该是这样的吧?
  • 在使用类而不是 id 之后。在所有复选框上创建一个事件。每次复选框状态更改后,对 PHP 页面进行 ajax 调用,将所有复选框状态发送到 PHP 页面。 PHP 页面将查询数据库并返回您使用 jquery 在页面上显示的不同值。
  • @Billy 粘贴了一个解决方案,应该对您有用,如果有帮助,请投票。

标签: javascript php jquery html checkbox


【解决方案1】:

这可以使用 jquery 实现,您需要显示所有复选框并使用 class 而不是 Id。我正在研究一个解决方案,一旦完成就会发布。

这是适合您的解决方案。您可以将其添加到脚本中并在浏览器中运行。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!DOCTYPE html >
<html>
    <head>
        <script src="javas/jquery-1.12.2.min.js" type="text/javascript"></script>  
        
        <script type="text/javascript">
            $('document').ready(function () {
                //OBJECT OF ARRAY WITH YOUR DESIRED VALUES FROM DATABASE, THIS COULD BE MADE DYNAMICALLY
                var id1Obj = { A:['1','2','3'], B:['1','2','5'], C:['1','3','4'] }; 

                $('.ID_1').click(function () {
                    
                    $('.ID_2').hide();
                    jQuery('.ID_1:checked').each(function( index ) {
                           
                        var valId1CheckboxVal = $(this).val();                        
                        
                        jQuery('.ID_2').each(function( index ) {  
                            
                            
                            if( $.inArray( $( this ).val(), id1Obj[valId1CheckboxVal] ) != -1 )
                            { 
                                $(this).show();
                            }
                            else
                            {
//                                console.info("flse for " + $( this ).val());
//                                console.log( $(this) );
                            }
                        });
                    });
                    
                });
                
                
                

            });
        </script>
    </head>
    <body>

        <div style="width:100%">
            <label>ID_1 checkboxes</label><br>
            <input class="ID_1" type="checkbox" value="A"> A<br>
            <input class="ID_1" type="checkbox" value="B"> B<br>
            <input class="ID_1" type="checkbox" value="C"> C<br>
            
            <br>
            
            
        </div>
        <br>
        <div style="width:100%">
            <label>ID_2 checkboxes</label><br>
            
            <input class="ID_2" type="checkbox" value="1">1 <br>
            <input class="ID_2" type="checkbox" value="2">2 <br>
            <input class="ID_2" type="checkbox" value="3">3 <br>
            <input class="ID_2" type="checkbox" value="4">4 <br>
            <input class="ID_2" type="checkbox" value="5">5 <br>
        </div>
        
    </body>
</html>

【讨论】:

  • 使用 ID 比使用班级更糟糕 :) 谢谢,我很感激
  • @Billy 您可以点击我的答案下方的“运行代码 sn-p 并尝试点击复选框。如果可行,请投票。
  • 谢谢@Billy,很高兴它有帮助,你也可以投票
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多